[Tint] Hacky fix for binding numbers in tests

Due to the way the MSL backend handles generating binding numbers with
the Tint exe, these slight changes are necessary to satisfy the
follow-up test fixes which will split out vertex entry point tests for
some builtins. This change has been separated into a separate CL due to
the size of the diff in generated files.

Only test/tint/builtins/gen/gen.wgsl.tmpl has been manually modified.
The other changes were created with:
./tools/run gen
./tools/run tests --generate-expected

Bug: 344846829
Change-Id: I8ecadda930b805a2b9bc171fba0ad461bd5149e9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/195477
Commit-Queue: Natalie Chouinard <chouinard@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index 5221cf9..d7919cd 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -47,6 +47,17 @@
 {{- /* Generate enable directives */ -}}
 {{- template "EnableDirectives" $overload -}}
 
+{{- /* Keep track of binding numbers to satisfy limitations of the MSL backend with the Tint executable interface: https://crbug.com/42250109 */ -}}
+{{- $b := 0 -}}
+{{- if and (or $overload.CanBeUsedInStage.Fragment $overload.CanBeUsedInStage.Compute) (and $overload.ReturnType (IsDeclarable $overload.ReturnType))}}
+{{-   if and (IsHostShareable $overload.ReturnType) (not (HasPrefix $overload.ReturnType.Target.Name "mat"))}}
+@group(0) @binding({{$b}}) var<storage, read_write> prevent_dce : {{template "Type" $overload.ReturnType -}};
+{{-   else}}
+@group(0) @binding({{$b}}) var<storage, read_write> prevent_dce : i32;
+{{    end}}
+{{    $b = 1}}
+{{  end}}
+
 {{- /* Generate RW storage buffer parameters */ -}}
 {{-   $sb_rw_fields := Eval "EmitBufferFields" "overload"          $overload
                                                "var_name"          "sb_rw"
@@ -57,7 +68,7 @@
 struct SB_RW {
 {{- $sb_rw_fields -}}
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding({{$b}}) var<storage, read_write> sb_rw : SB_RW;
 {{    end -}}
 
 {{- /* Generate RO storage buffer parameters */ -}}
@@ -70,7 +81,7 @@
 struct SB_RO {
 {{- $sb_ro_fields -}}
 };
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+@group(0) @binding({{$b}}) var<storage, read> sb_ro : SB_RO;
 {{    end -}}
 
 {{- /* Generate uniform buffer parameters */ -}}
@@ -83,7 +94,7 @@
 struct UB {
 {{- $ub_fields -}}
 };
-@group(0) @binding(1) var<uniform> ub : UB;
+@group(0) @binding({{$b}}) var<uniform> ub : UB;
 {{    end -}}
 
 {{- /* Generate module-scoped handle variables */ -}}
@@ -176,14 +187,6 @@
 {{-   end}}
 }
 
-{{-   if and (or $overload.CanBeUsedInStage.Fragment $overload.CanBeUsedInStage.Compute) (and $overload.ReturnType (IsDeclarable $overload.ReturnType))}}
-{{-     if and (IsHostShareable $overload.ReturnType) (not (HasPrefix $overload.ReturnType.Target.Name "mat"))}}
-@group(0) @binding(0) var<storage, read_write> prevent_dce : {{template "Type" $overload.ReturnType -}};
-{{-     else}}
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-{{      end}}
-{{    end}}
-
 {{- if $overload.CanBeUsedInStage.Fragment }}
 @fragment
 fn fragment_main() {
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl b/test/tint/builtins/gen/literal/abs/002533.wgsl
index 82e92f6..26d6110 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn abs(vec<4, f32>) -> vec<4, f32>
 fn abs_002533() -> vec4<f32>{
   var res: vec4<f32> = abs(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_002533();
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.dxc.hlsl
index b468614..347e209 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 abs_002533() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_002533()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.fxc.hlsl
index b468614..347e209 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 abs_002533() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_002533()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.glsl
index a80ef35..ebe73f8 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 abs_002533() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 abs_002533() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.wgsl
index 0219a7f..c89df93 100644
--- a/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/002533.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn abs_002533() -> vec4<f32> {
   var res : vec4<f32> = abs(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_002533();
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl b/test/tint/builtins/gen/literal/abs/005174.wgsl
index 8deafdf..27a7880 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn abs(vec<3, f32>) -> vec<3, f32>
 fn abs_005174() -> vec3<f32>{
   var res: vec3<f32> = abs(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_005174();
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.dxc.hlsl
index b2b610f..bebe527 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 abs_005174() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_005174()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.fxc.hlsl
index b2b610f..bebe527 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 abs_005174() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_005174()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.glsl
index dfa035b..15f370b 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 abs_005174() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 abs_005174() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 abs_005174() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 abs_005174() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.wgsl
index e0c91d4..cb56c3d 100644
--- a/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/005174.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn abs_005174() -> vec3<f32> {
   var res : vec3<f32> = abs(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_005174();
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl
index a60eba9..59183ae 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn abs(vec<4, u32>) -> vec<4, u32>
 fn abs_1ce782() -> vec4<u32>{
   var res: vec4<u32> = abs(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1ce782();
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.dxc.hlsl
index 6a88761..ebf5aad 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 abs_1ce782() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_1ce782()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.fxc.hlsl
index 6a88761..ebf5aad 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 abs_1ce782() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_1ce782()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.glsl
index b535618..57e04d2 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 abs_1ce782() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 abs_1ce782() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.wgsl
index 682f8f0..005dd39 100644
--- a/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/1ce782.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn abs_1ce782() -> vec4<u32> {
   var res : vec4<u32> = abs(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1ce782();
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl
index 3a22ab2..2e17d50 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn abs(vec<2, f32>) -> vec<2, f32>
 fn abs_1e9d53() -> vec2<f32>{
   var res: vec2<f32> = abs(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1e9d53();
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.dxc.hlsl
index ca5d22d..6b2478d 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 abs_1e9d53() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_1e9d53()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.fxc.hlsl
index ca5d22d..6b2478d 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 abs_1e9d53() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_1e9d53()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.glsl
index 517d404..4513386 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 abs_1e9d53() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 abs_1e9d53() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.wgsl
index f0eab05..b9576b3 100644
--- a/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/1e9d53.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn abs_1e9d53() -> vec2<f32> {
   var res : vec2<f32> = abs(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1e9d53();
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl
index ba5906b..7dda253 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn abs(vec<3, f16>) -> vec<3, f16>
 fn abs_421ca3() -> vec3<f16>{
   var res: vec3<f16> = abs(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_421ca3();
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.dxc.hlsl
index 1be63c1..4fba256 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> abs_421ca3() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
   return;
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.glsl
index 4c414e3..15b6c32 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 abs_421ca3() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 abs_421ca3() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.wgsl
index 752d2b5..7664126 100644
--- a/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/421ca3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn abs_421ca3() -> vec3<f16> {
   var res : vec3<f16> = abs(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_421ca3();
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl
index 151794d..b12f4e4 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn abs(u32) -> u32
 fn abs_467cd1() -> u32{
   var res: u32 = abs(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_467cd1();
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.dxc.hlsl
index a2a50a0..c25787b 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint abs_467cd1() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_467cd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.fxc.hlsl
index a2a50a0..c25787b 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint abs_467cd1() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_467cd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.glsl
index ec73c59..f579286 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint abs_467cd1() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint abs_467cd1() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.wgsl
index a2a6482..90f6ad1 100644
--- a/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/467cd1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn abs_467cd1() -> u32 {
   var res : u32 = abs(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_467cd1();
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl
index 0c6ef70..04fb946 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn abs(i32) -> i32
 fn abs_4ad288() -> i32{
   var res: i32 = abs(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_4ad288();
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.dxc.hlsl
index 544f447..65966f6 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int abs_4ad288() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_4ad288()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.fxc.hlsl
index 544f447..65966f6 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int abs_4ad288() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_4ad288()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.glsl
index 85aa6a2..f99547c 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int abs_4ad288() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int abs_4ad288() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.wgsl
index 6d81cea..57ad2f2 100644
--- a/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/4ad288.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn abs_4ad288() -> i32 {
   var res : i32 = abs(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_4ad288();
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl
index 761b29f..bf07257 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn abs(vec<4, f16>) -> vec<4, f16>
 fn abs_538d29() -> vec4<f16>{
   var res: vec4<f16> = abs(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_538d29();
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.dxc.hlsl
index b81aa47..132e9a1 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> abs_538d29() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
   return;
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.glsl
index 41f4c69..9b716f0 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 abs_538d29() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 abs_538d29() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.wgsl
index add6cb1..8451a4e 100644
--- a/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/538d29.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn abs_538d29() -> vec4<f16> {
   var res : vec4<f16> = abs(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_538d29();
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl
index 19f8aa7..76b87db 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn abs(vec<3, i32>) -> vec<3, i32>
 fn abs_5ad50a() -> vec3<i32>{
   var res: vec3<i32> = abs(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ad50a();
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.dxc.hlsl
index 95201d1..ce11043 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 abs_5ad50a() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_5ad50a()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.fxc.hlsl
index 95201d1..ce11043 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 abs_5ad50a() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_5ad50a()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.glsl
index aa2f4a5..212d8d4 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 abs_5ad50a() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 abs_5ad50a() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 abs_5ad50a() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 abs_5ad50a() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.wgsl
index a716f73..eff773b 100644
--- a/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/5ad50a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn abs_5ad50a() -> vec3<i32> {
   var res : vec3<i32> = abs(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ad50a();
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl
index 2103ee3..8fae96a 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn abs(vec<2, f16>) -> vec<2, f16>
 fn abs_5ae4fe() -> vec2<f16>{
   var res: vec2<f16> = abs(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ae4fe();
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.dxc.hlsl
index 0a2dc6e..c8b770c 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> abs_5ae4fe() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
   return;
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.glsl
index fb6caff..0f64a29 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 abs_5ae4fe() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 abs_5ae4fe() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.wgsl
index 3d64fb4..2b00f03 100644
--- a/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/5ae4fe.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn abs_5ae4fe() -> vec2<f16> {
   var res : vec2<f16> = abs(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ae4fe();
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl
index 8066a79..241bd0b0 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn abs(vec<3, u32>) -> vec<3, u32>
 fn abs_7326de() -> vec3<u32>{
   var res: vec3<u32> = abs(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7326de();
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.dxc.hlsl
index 30189a5..8922365 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 abs_7326de() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_7326de()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.fxc.hlsl
index 30189a5..8922365 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 abs_7326de() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_7326de()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.glsl
index 6ca49e0..2acdd38 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 abs_7326de() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 abs_7326de() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 abs_7326de() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 abs_7326de() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.wgsl
index 89511f3..fce5b59 100644
--- a/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/7326de.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn abs_7326de() -> vec3<u32> {
   var res : vec3<u32> = abs(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7326de();
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl
index c5a41cd..c88e66c 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn abs(vec<2, u32>) -> vec<2, u32>
 fn abs_7f28e6() -> vec2<u32>{
   var res: vec2<u32> = abs(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7f28e6();
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.dxc.hlsl
index 3a85446..7e16c3c 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 abs_7f28e6() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7f28e6()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.fxc.hlsl
index 3a85446..7e16c3c 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 abs_7f28e6() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7f28e6()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.glsl
index fe3858e..6d10bfb 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 abs_7f28e6() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 abs_7f28e6() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.wgsl
index cdd961e..f247840 100644
--- a/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/7f28e6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn abs_7f28e6() -> vec2<u32> {
   var res : vec2<u32> = abs(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7f28e6();
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl
index 4961de6..16550e4 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn abs(vec<2, i32>) -> vec<2, i32>
 fn abs_7faa9e() -> vec2<i32>{
   var res: vec2<i32> = abs(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7faa9e();
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.dxc.hlsl
index 993d1e2..e7e899e 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 abs_7faa9e() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7faa9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.fxc.hlsl
index 993d1e2..e7e899e 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 abs_7faa9e() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7faa9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.glsl
index e58e5f5..6ed4213 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 abs_7faa9e() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 abs_7faa9e() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.wgsl
index 5b3d5ff..7b8a305 100644
--- a/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/7faa9e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn abs_7faa9e() -> vec2<i32> {
   var res : vec2<i32> = abs(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7faa9e();
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl
index 5d9c6c0..a2bc0e1 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn abs(vec<4, i32>) -> vec<4, i32>
 fn abs_9c80a6() -> vec4<i32>{
   var res: vec4<i32> = abs(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_9c80a6();
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.dxc.hlsl
index dae75f2..4b16f48 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 abs_9c80a6() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_9c80a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.fxc.hlsl
index dae75f2..4b16f48 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 abs_9c80a6() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_9c80a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.glsl
index f32e39a..759159f 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 abs_9c80a6() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 abs_9c80a6() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.wgsl
index 93601f4..1102b93 100644
--- a/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/9c80a6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn abs_9c80a6() -> vec4<i32> {
   var res : vec4<i32> = abs(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_9c80a6();
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl
index 70670d9..7e04c90 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn abs(f32) -> f32
 fn abs_b96037() -> f32{
   var res: f32 = abs(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_b96037();
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.dxc.hlsl
index f914e2f..eeea4e5 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float abs_b96037() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_b96037()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.fxc.hlsl
index f914e2f..eeea4e5 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float abs_b96037() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_b96037()));
   return;
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.glsl
index 6347f1d..0709c43 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float abs_b96037() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float abs_b96037() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.wgsl
index 46fef34..6c5df23 100644
--- a/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/b96037.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn abs_b96037() -> f32 {
   var res : f32 = abs(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_b96037();
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl
index 2efb1a7..126de96 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn abs(f16) -> f16
 fn abs_fd247f() -> f16{
   var res: f16 = abs(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_fd247f();
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.dxc.hlsl
index e832b5d..5c815cc 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t abs_fd247f() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, abs_fd247f());
   return;
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.glsl
index db5113f..509e899 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t abs_fd247f() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t abs_fd247f() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.wgsl
index 32b414c..23ca23d 100644
--- a/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/abs/fd247f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn abs_fd247f() -> f16 {
   var res : f16 = abs(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_fd247f();
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl
index 42bde32..1b3b486 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn acos(vec<2, f16>) -> vec<2, f16>
 fn acos_004aff() -> vec2<f16>{
   var res: vec2<f16> = acos(vec2<f16>(0.96891242171h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_004aff();
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl
index b7e7038..12c47d7 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> acos_004aff() {
   vector<float16_t, 2> res = (float16_t(0.25048828125h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
   return;
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl
index 4e270fb..2a07be4 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acos_004aff() {
   f16vec2 res = f16vec2(0.25048828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acos_004aff() {
   f16vec2 res = f16vec2(0.25048828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.wgsl
index 36d79df..c601b1b 100644
--- a/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/004aff.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn acos_004aff() -> vec2<f16> {
   var res : vec2<f16> = acos(vec2<f16>(0.96875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_004aff();
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl b/test/tint/builtins/gen/literal/acos/203628.wgsl
index 943ae08..48eedf2 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn acos(vec<4, f16>) -> vec<4, f16>
 fn acos_203628() -> vec4<f16>{
   var res: vec4<f16> = acos(vec4<f16>(0.96891242171h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_203628();
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl
index b6cba92..58b2362 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> acos_203628() {
   vector<float16_t, 4> res = (float16_t(0.25048828125h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
   return;
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl
index 74657ea..cd469b6 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acos_203628() {
   f16vec4 res = f16vec4(0.25048828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acos_203628() {
   f16vec4 res = f16vec4(0.25048828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.wgsl
index 1c86638..3a0b536 100644
--- a/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/203628.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn acos_203628() -> vec4<f16> {
   var res : vec4<f16> = acos(vec4<f16>(0.96875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_203628();
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl
index 86dfa29..44432c6 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn acos(f16) -> f16
 fn acos_303e3d() -> f16{
   var res: f16 = acos(0.96891242171h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_303e3d();
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl
index e9d8b0f..e5aa877 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t acos_303e3d() {
   float16_t res = float16_t(0.25048828125h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, acos_303e3d());
   return;
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl
index c99741a..08473ee 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acos_303e3d() {
   float16_t res = 0.25048828125hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acos_303e3d() {
   float16_t res = 0.25048828125hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.wgsl
index 8625eb7..0a7db2e 100644
--- a/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/303e3d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn acos_303e3d() -> f16 {
   var res : f16 = acos(0.96875h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_303e3d();
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl b/test/tint/builtins/gen/literal/acos/489247.wgsl
index 90229cf..f1731e5 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn acos(f32) -> f32
 fn acos_489247() -> f32{
   var res: f32 = acos(0.96891242171f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_489247();
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.dxc.hlsl
index 843673b..71df307 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acos_489247() {
   float res = 0.25f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acos_489247()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.fxc.hlsl
index 843673b..71df307 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acos_489247() {
   float res = 0.25f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acos_489247()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.glsl
index c0591e7..0329ed2 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acos_489247() {
   float res = 0.25f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acos_489247() {
   float res = 0.25f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl
index f16ec7b..1f2aff1 100644
--- a/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/489247.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn acos_489247() -> f32 {
   var res : f32 = acos(0.96891242265701293945f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_489247();
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl
index b58d1e5..4d704e3 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn acos(vec<4, f32>) -> vec<4, f32>
 fn acos_8e2acf() -> vec4<f32>{
   var res: vec4<f32> = acos(vec4<f32>(0.96891242171f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_8e2acf();
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.dxc.hlsl
index 088a990..b59d080 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acos_8e2acf() {
   float4 res = (0.25f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acos_8e2acf()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.fxc.hlsl
index 088a990..b59d080 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acos_8e2acf() {
   float4 res = (0.25f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acos_8e2acf()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.glsl
index 465e7f9..c4423e8 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acos_8e2acf() {
   vec4 res = vec4(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acos_8e2acf() {
   vec4 res = vec4(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl
index 9f58acd..6a23aac 100644
--- a/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/8e2acf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn acos_8e2acf() -> vec4<f32> {
   var res : vec4<f32> = acos(vec4<f32>(0.96891242265701293945f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_8e2acf();
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl
index b1e3eb1..2d1cc85 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn acos(vec<3, f32>) -> vec<3, f32>
 fn acos_a610c4() -> vec3<f32>{
   var res: vec3<f32> = acos(vec3<f32>(0.96891242171f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_a610c4();
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.dxc.hlsl
index 084424f..bbc9dfa 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acos_a610c4() {
   float3 res = (0.25f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acos_a610c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.fxc.hlsl
index 084424f..bbc9dfa 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acos_a610c4() {
   float3 res = (0.25f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acos_a610c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.glsl
index c9d2c8c..f0118d1 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 acos_a610c4() {
-  vec3 res = vec3(0.25f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 acos_a610c4() {
+  vec3 res = vec3(0.25f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 acos_a610c4() {
-  vec3 res = vec3(0.25f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 acos_a610c4() {
+  vec3 res = vec3(0.25f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl
index 9531673..17bc16a 100644
--- a/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/a610c4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn acos_a610c4() -> vec3<f32> {
   var res : vec3<f32> = acos(vec3<f32>(0.96891242265701293945f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_a610c4();
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl
index c72d937..270d041 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn acos(vec<2, f32>) -> vec<2, f32>
 fn acos_dfc915() -> vec2<f32>{
   var res: vec2<f32> = acos(vec2<f32>(0.96891242171f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_dfc915();
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.dxc.hlsl
index a1246d5..66b626e 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acos_dfc915() {
   float2 res = (0.25f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acos_dfc915()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.fxc.hlsl
index a1246d5..66b626e 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acos_dfc915() {
   float2 res = (0.25f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acos_dfc915()));
   return;
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.glsl
index 62d538f..79ff430 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acos_dfc915() {
   vec2 res = vec2(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acos_dfc915() {
   vec2 res = vec2(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl
index 1c22c55..4074afd 100644
--- a/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/dfc915.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn acos_dfc915() -> vec2<f32> {
   var res : vec2<f32> = acos(vec2<f32>(0.96891242265701293945f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_dfc915();
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl
index 98a6389..c4953d2 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn acos(vec<3, f16>) -> vec<3, f16>
 fn acos_f47057() -> vec3<f16>{
   var res: vec3<f16> = acos(vec3<f16>(0.96891242171h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_f47057();
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl
index 224face..e2d2d60 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> acos_f47057() {
   vector<float16_t, 3> res = (float16_t(0.25048828125h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
   return;
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl
index 7656658..2ff285a 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acos_f47057() {
   f16vec3 res = f16vec3(0.25048828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acos_f47057() {
   f16vec3 res = f16vec3(0.25048828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.wgsl
index 453f8aa..5389512 100644
--- a/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acos/f47057.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn acos_f47057() -> vec3<f16> {
   var res : vec3<f16> = acos(vec3<f16>(0.96875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_f47057();
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl
index 286d50c..46b8699 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn acosh(vec<2, f16>) -> vec<2, f16>
 fn acosh_5f49d8() -> vec2<f16>{
   var res: vec2<f16> = acosh(vec2<f16>(1.5430806348h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_5f49d8();
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl
index 129e579..c1fbcfc 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> acosh_5f49d8() {
   vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl
index 29135f5..4b1c1e0 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acosh_5f49d8() {
   f16vec2 res = f16vec2(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acosh_5f49d8() {
   f16vec2 res = f16vec2(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl
index 39e358d..0d60594 100644
--- a/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/5f49d8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn acosh_5f49d8() -> vec2<f16> {
   var res : vec2<f16> = acosh(vec2<f16>(1.54296875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_5f49d8();
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl
index 6ed59f0..1191dca9f 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn acosh(vec<2, f32>) -> vec<2, f32>
 fn acosh_640883() -> vec2<f32>{
   var res: vec2<f32> = acosh(vec2<f32>(1.5430806348f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_640883();
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl
index 0066a3f..5909f53 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acosh_640883() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acosh_640883()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl
index 0066a3f..5909f53 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acosh_640883() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acosh_640883()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl
index 54f5793..b4799c6 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acosh_640883() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acosh_640883() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl
index 372b04a..7ed3b21 100644
--- a/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/640883.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn acosh_640883() -> vec2<f32> {
   var res : vec2<f32> = acosh(vec2<f32>(1.54308068752288818359f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_640883();
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl
index 7f3af37..f140eda 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn acosh(f16) -> f16
 fn acosh_a37dfe() -> f16{
   var res: f16 = acosh(1.5430806348h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_a37dfe();
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl
index 792edbb..f145064 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t acosh_a37dfe() {
   float16_t res = float16_t(0.99951171875h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl
index 3ba8d30..153d79c 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acosh_a37dfe() {
   float16_t res = 0.99951171875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acosh_a37dfe() {
   float16_t res = 0.99951171875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl
index b3c7da5..7158dae 100644
--- a/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/a37dfe.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn acosh_a37dfe() -> f16 {
   var res : f16 = acosh(1.54296875h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_a37dfe();
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl
index b6fc2a5..f0fa727 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn acosh(vec<4, f32>) -> vec<4, f32>
 fn acosh_d51ccb() -> vec4<f32>{
   var res: vec4<f32> = acosh(vec4<f32>(1.5430806348f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_d51ccb();
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl
index 82f8197..3a4e1ec 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acosh_d51ccb() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl
index 82f8197..3a4e1ec 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acosh_d51ccb() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl
index f4af336..92d758c 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acosh_d51ccb() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acosh_d51ccb() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl
index f832463..f6209cf 100644
--- a/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/d51ccb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn acosh_d51ccb() -> vec4<f32> {
   var res : vec4<f32> = acosh(vec4<f32>(1.54308068752288818359f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_d51ccb();
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl
index 5ebd26e..fdbd879 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn acosh(vec<4, f16>) -> vec<4, f16>
 fn acosh_de60d8() -> vec4<f16>{
   var res: vec4<f16> = acosh(vec4<f16>(1.5430806348h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_de60d8();
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl
index ce3bf7b..91dc340 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> acosh_de60d8() {
   vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl
index d306bd8..c840e1f 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acosh_de60d8() {
   f16vec4 res = f16vec4(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acosh_de60d8() {
   f16vec4 res = f16vec4(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl
index d442cd2..7617077 100644
--- a/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/de60d8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn acosh_de60d8() -> vec4<f16> {
   var res : vec4<f16> = acosh(vec4<f16>(1.54296875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_de60d8();
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl
index ddffa88..17dd482 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn acosh(vec<3, f32>) -> vec<3, f32>
 fn acosh_e38f5c() -> vec3<f32>{
   var res: vec3<f32> = acosh(vec3<f32>(1.5430806348f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_e38f5c();
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl
index bf43494..71d3cb9 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acosh_e38f5c() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl
index bf43494..71d3cb9 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acosh_e38f5c() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl
index 32d8d7b..65a9183 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 acosh_e38f5c() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 acosh_e38f5c() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 acosh_e38f5c() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 acosh_e38f5c() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl
index 3e3fc9d..c436480 100644
--- a/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/e38f5c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn acosh_e38f5c() -> vec3<f32> {
   var res : vec3<f32> = acosh(vec3<f32>(1.54308068752288818359f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_e38f5c();
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl
index add9f48..81c7010 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn acosh(f32) -> f32
 fn acosh_ecf2d1() -> f32{
   var res: f32 = acosh(1.5430806348f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_ecf2d1();
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl
index 35cfd7c..02ace71 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acosh_ecf2d1() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl
index 35cfd7c..02ace71 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acosh_ecf2d1() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl
index 032e15b..1913a63 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acosh_ecf2d1() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acosh_ecf2d1() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl
index 72546d7..532d38e 100644
--- a/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/ecf2d1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn acosh_ecf2d1() -> f32 {
   var res : f32 = acosh(1.54308068752288818359f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_ecf2d1();
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl
index 03c4d19..cb817ac 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn acosh(vec<3, f16>) -> vec<3, f16>
 fn acosh_f56574() -> vec3<f16>{
   var res: vec3<f16> = acosh(vec3<f16>(1.5430806348h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_f56574();
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl
index 960aa0a..bd4fa43 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> acosh_f56574() {
   vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
   return;
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl
index 3c8662c..2bc5897 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acosh_f56574() {
   f16vec3 res = f16vec3(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acosh_f56574() {
   f16vec3 res = f16vec3(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl
index da47cf2..de1c758 100644
--- a/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/acosh/f56574.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn acosh_f56574() -> vec3<f16> {
   var res : vec3<f16> = acosh(vec3<f16>(1.54296875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_f56574();
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl
index 14e9fee..14017aa 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(bool) -> bool
 fn all_353d6a() -> i32{
   var res: bool = all(true);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_353d6a();
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.dxc.hlsl
index 4f217f9..ce7a80d 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_353d6a() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_353d6a()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.fxc.hlsl
index 4f217f9..ce7a80d 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_353d6a() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_353d6a()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.glsl
index 441e709..37b97dc 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_353d6a() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_353d6a() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.wgsl
index 373dddf..76e9f49 100644
--- a/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/all/353d6a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_353d6a() -> i32 {
   var res : bool = all(true);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_353d6a();
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl
index ff6838d..5634696 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(vec<4, bool>) -> bool
 fn all_986c7b() -> i32{
   var res: bool = all(vec4<bool>(true));
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_986c7b();
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.dxc.hlsl
index 8613269..50d03ac 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_986c7b() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_986c7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.fxc.hlsl
index 8613269..50d03ac 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_986c7b() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_986c7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.glsl
index 2b6ce51..b7e85dc 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_986c7b() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_986c7b() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.wgsl
index c9ba34f..579b9b4 100644
--- a/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/all/986c7b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_986c7b() -> i32 {
   var res : bool = all(vec4<bool>(true));
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_986c7b();
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl
index d9c1f1b..2a5b6b1 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(vec<3, bool>) -> bool
 fn all_bd2dba() -> i32{
   var res: bool = all(vec3<bool>(true));
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_bd2dba();
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.dxc.hlsl
index e42ce2e..77fc2fc 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_bd2dba() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_bd2dba()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.fxc.hlsl
index e42ce2e..77fc2fc 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_bd2dba() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_bd2dba()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.glsl
index 648cf96..149636c 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_bd2dba() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_bd2dba() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.wgsl
index 1eb0094..803fdb5 100644
--- a/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/all/bd2dba.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_bd2dba() -> i32 {
   var res : bool = all(vec3<bool>(true));
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_bd2dba();
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl b/test/tint/builtins/gen/literal/all/f46790.wgsl
index 09843b7..4a8669b 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(vec<2, bool>) -> bool
 fn all_f46790() -> i32{
   var res: bool = all(vec2<bool>(true));
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_f46790();
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.dxc.hlsl
index 3a28a06..92a3cdc 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_f46790() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_f46790()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.fxc.hlsl
index 3a28a06..92a3cdc 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_f46790() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_f46790()));
   return;
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.glsl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.glsl
index e28ea8e..9644585 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_f46790() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_f46790() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.wgsl
index dfcefe2..5557bf8 100644
--- a/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/all/f46790.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_f46790() -> i32 {
   var res : bool = all(vec2<bool>(true));
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_f46790();
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl b/test/tint/builtins/gen/literal/any/083428.wgsl
index 5c205f7..6735085 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(vec<4, bool>) -> bool
 fn any_083428() -> i32{
   var res: bool = any(vec4<bool>(true));
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_083428();
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.dxc.hlsl
index 9f88df0..2068327 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_083428() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_083428()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.fxc.hlsl
index 9f88df0..2068327 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_083428() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_083428()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.glsl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.glsl
index 97838b9..d000953 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_083428() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_083428() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.wgsl
index 630649f..2ba09b1 100644
--- a/test/tint/builtins/gen/literal/any/083428.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/any/083428.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_083428() -> i32 {
   var res : bool = any(vec4<bool>(true));
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_083428();
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl
index 0124048..65fde23 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(vec<2, bool>) -> bool
 fn any_0e3e58() -> i32{
   var res: bool = any(vec2<bool>(true));
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_0e3e58();
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.dxc.hlsl
index 6241c11..516bc53 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_0e3e58() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_0e3e58()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.fxc.hlsl
index 6241c11..516bc53 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_0e3e58() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_0e3e58()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.glsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.glsl
index 7939b11..63d836f 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_0e3e58() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_0e3e58() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.wgsl
index ea74c83..e6d92c4 100644
--- a/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/any/0e3e58.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_0e3e58() -> i32 {
   var res : bool = any(vec2<bool>(true));
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_0e3e58();
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl
index fd1eca5..99ae1a6 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(bool) -> bool
 fn any_2ab91a() -> i32{
   var res: bool = any(true);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_2ab91a();
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.dxc.hlsl
index f04082c..0a2f5bb 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_2ab91a() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_2ab91a()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.fxc.hlsl
index f04082c..0a2f5bb 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_2ab91a() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_2ab91a()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.glsl
index 4b6baf5..672fd18 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_2ab91a() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_2ab91a() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.wgsl
index 25d3e2b..aee9247 100644
--- a/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/any/2ab91a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_2ab91a() -> i32 {
   var res : bool = any(true);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_2ab91a();
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl
index 80d8a4a..11bebfc 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(vec<3, bool>) -> bool
 fn any_e755c1() -> i32{
   var res: bool = any(vec3<bool>(true));
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_e755c1();
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.dxc.hlsl
index 8461745..0749190 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_e755c1() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_e755c1()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.fxc.hlsl
index 8461745..0749190 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_e755c1() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_e755c1()));
   return;
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.glsl
index 7d3a88a..54d0a6d 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_e755c1() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_e755c1() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.wgsl
index e27c8fe..720decf 100644
--- a/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/any/e755c1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_e755c1() -> i32 {
   var res : bool = any(vec3<bool>(true));
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_e755c1();
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl
index 9af40a9..11dd7e5 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<i32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_1588cd();
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
index 032bb4e..6d80313 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_1588cd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
index 032bb4e..6d80313 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_1588cd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
index 96261d9..1721801 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
index aa1e390..e44749e 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_1588cd "arrayLength_1588cd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,16 +33,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,14 +57,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
index 458ccad..b00ac77 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_1588cd();
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
index 4af33e6..4f98e9a 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<i32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_61b1c7();
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
index 02808f6..7a26fc2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_61b1c7() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
index 02808f6..7a26fc2 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_61b1c7() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_61b1c7()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
index 486ee35..2bdfddf 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   int arg_0[];
 } sb_rw;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   int arg_0[];
 } sb_rw;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
index eff89d4..4a7c8be 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,15 +33,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,14 +56,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
index 3c6e36f..6ecb7aa 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_61b1c7();
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
index 263df5b..75e7d8b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl
@@ -39,6 +39,9 @@
 
 
 enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<f16>,
 };
@@ -49,8 +52,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_8421b9();
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
index bef37e9..e02571b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_8421b9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl
index bef37e9..e02571b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_8421b9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
index 0927b79..cae2a68 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -32,6 +32,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm
index c122620..df76986 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.spvasm
@@ -16,12 +16,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_8421b9 "arrayLength_8421b9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -36,16 +36,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_half ArrayStride 2
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -60,14 +60,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
        %half = OpTypeFloat 16
 %_runtimearr_half = OpTypeRuntimeArray %half
       %SB_RO = OpTypeStruct %_runtimearr_half
 %_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
       %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
index acf8444..ec5202c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<f16>,
 }
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_8421b9();
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl
index 0eb5055..6339a25 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<f32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_a0f5ca();
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
index 0db7147..aa0f392 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_a0f5ca() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
   return;
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
index 0db7147..aa0f392 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_a0f5ca() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
index 1f4e230..2949eec 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
index 3197bfd..0f4f9b6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,16 +33,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,13 +57,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
 %_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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
index 3103012..49a5398 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<f32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_a0f5ca();
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
index 86bcec8..4072164 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl
@@ -39,6 +39,9 @@
 
 
 enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<f16>,
 };
@@ -49,8 +52,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cbd6b5();
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
index 75693c2..3014a2c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cbd6b5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
index 75693c2..3014a2c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cbd6b5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cbd6b5()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
index 65206aa..532f394 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float16_t arg_0[];
 } sb_rw;
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -32,6 +32,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float16_t arg_0[];
 } sb_rw;
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm
index ce8d674..7c15916 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.spvasm
@@ -16,12 +16,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_cbd6b5 "arrayLength_cbd6b5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -36,15 +36,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_half ArrayStride 2
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -59,14 +59,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
        %half = OpTypeFloat 16
 %_runtimearr_half = OpTypeRuntimeArray %half
       %SB_RW = OpTypeStruct %_runtimearr_half
 %_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
       %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
index 4de9b11..9e20158 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<f16>,
 }
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cbd6b5();
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
index 90b9e0d..3100309 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<f32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cdd123();
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
index 008818d..afef5da 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cdd123() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index 008818d..afef5da 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cdd123() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cdd123()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
index a008787..87b018d 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float arg_0[];
 } sb_rw;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float arg_0[];
 } sb_rw;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
index 9df29dd..e0dac6c 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_cdd123 "arrayLength_cdd123"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,15 +33,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,13 +56,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
 %_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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
index 38405ee..ff45788 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<f32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cdd123();
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl
index 627a85e..3e228f6 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cfca0a();
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
index 8e8d801..7ce1661 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_cfca0a() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
   return;
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
index 8e8d801..7ce1661 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_cfca0a() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
index 07d7cfb..d72eb17 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
index 2579706..298ba19 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_cfca0a "arrayLength_cfca0a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,16 +33,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,13 +57,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
index 171f77b..c1b2368 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cfca0a();
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
index 0d70933..6089eef 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_eb510f();
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
index c91ef7c..21ef6158 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_eb510f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index c91ef7c..21ef6158 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_eb510f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_eb510f()));
   return;
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
index c0dfe37..19878b8 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   uint arg_0[];
 } sb_rw;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   uint arg_0[];
 } sb_rw;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
index 7c1495f..18c3487 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_eb510f "arrayLength_eb510f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,15 +33,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,13 +56,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
index ddc862b..5993870 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_eb510f();
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl b/test/tint/builtins/gen/literal/asin/064953.wgsl
index f5442fe..3d72c0b 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn asin(vec<4, f32>) -> vec<4, f32>
 fn asin_064953() -> vec4<f32>{
   var res: vec4<f32> = asin(vec4<f32>(0.479425538604f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_064953();
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl
index 32aae4cf..98ae784 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asin_064953() {
   float4 res = (0.5f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asin_064953()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl
index 32aae4cf..98ae784 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asin_064953() {
   float4 res = (0.5f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asin_064953()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl
index 4666021..990c260 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asin_064953() {
   vec4 res = vec4(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asin_064953() {
   vec4 res = vec4(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
index efad4f1..2904ea0 100644
--- a/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/064953.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn asin_064953() -> vec4<f32> {
   var res : vec4<f32> = asin(vec4<f32>(0.47942554950714111328f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_064953();
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl
index 4ffe0fb..fa30614 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn asin(f16) -> f16
 fn asin_11dfda() -> f16{
   var res: f16 = asin(0.479425538604h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_11dfda();
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl
index ae56480..c44a2fb 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t asin_11dfda() {
   float16_t res = float16_t(0.499755859375h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, asin_11dfda());
   return;
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl
index 4cb3c0b..0affc9d 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asin_11dfda() {
   float16_t res = 0.499755859375hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asin_11dfda() {
   float16_t res = 0.499755859375hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl
index fc11bf0..16b4a43 100644
--- a/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/11dfda.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn asin_11dfda() -> f16 {
   var res : f16 = asin(0.479248046875h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_11dfda();
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl
index 9fb7752..7a2657d 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn asin(vec<3, f16>) -> vec<3, f16>
 fn asin_2d8e29() -> vec3<f16>{
   var res: vec3<f16> = asin(vec3<f16>(0.479425538604h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_2d8e29();
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl
index 1dcd93b..19113c1 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> asin_2d8e29() {
   vector<float16_t, 3> res = (float16_t(0.499755859375h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
   return;
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl
index 9e529bd..eab5f62 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asin_2d8e29() {
   f16vec3 res = f16vec3(0.499755859375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asin_2d8e29() {
   f16vec3 res = f16vec3(0.499755859375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl
index 59d5375..d67685b 100644
--- a/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/2d8e29.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn asin_2d8e29() -> vec3<f16> {
   var res : vec3<f16> = asin(vec3<f16>(0.479248046875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_2d8e29();
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl
index 86732f7..c1eda32 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn asin(vec<4, f16>) -> vec<4, f16>
 fn asin_3cfbd4() -> vec4<f16>{
   var res: vec4<f16> = asin(vec4<f16>(0.479425538604h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_3cfbd4();
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl
index 57dbe07..6e1693f 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> asin_3cfbd4() {
   vector<float16_t, 4> res = (float16_t(0.499755859375h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
   return;
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl
index 6f1da12..368c1dc 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asin_3cfbd4() {
   f16vec4 res = f16vec4(0.499755859375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asin_3cfbd4() {
   f16vec4 res = f16vec4(0.499755859375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl
index 718b26d..e528f45 100644
--- a/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/3cfbd4.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn asin_3cfbd4() -> vec4<f16> {
   var res : vec4<f16> = asin(vec4<f16>(0.479248046875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_3cfbd4();
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl
index ef625d1..fc2174a 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn asin(vec<2, f32>) -> vec<2, f32>
 fn asin_7b6a44() -> vec2<f32>{
   var res: vec2<f32> = asin(vec2<f32>(0.479425538604f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_7b6a44();
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl
index 30484dd..d2e5e99 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asin_7b6a44() {
   float2 res = (0.5f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asin_7b6a44()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl
index 30484dd..d2e5e99 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asin_7b6a44() {
   float2 res = (0.5f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asin_7b6a44()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl
index 59eba15..137c6ae 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asin_7b6a44() {
   vec2 res = vec2(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asin_7b6a44() {
   vec2 res = vec2(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
index b35c5d2..e8fb0a0 100644
--- a/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/7b6a44.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn asin_7b6a44() -> vec2<f32> {
   var res : vec2<f32> = asin(vec2<f32>(0.47942554950714111328f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_7b6a44();
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl
index 0172adf..5071ea6 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn asin(vec<3, f32>) -> vec<3, f32>
 fn asin_8cd9c9() -> vec3<f32>{
   var res: vec3<f32> = asin(vec3<f32>(0.479425538604f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_8cd9c9();
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl
index 1a6c318..d819481 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asin_8cd9c9() {
   float3 res = (0.5f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl
index 1a6c318..d819481 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asin_8cd9c9() {
   float3 res = (0.5f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl
index 1b37ce4..49ef81c 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 asin_8cd9c9() {
-  vec3 res = vec3(0.5f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 asin_8cd9c9() {
+  vec3 res = vec3(0.5f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 asin_8cd9c9() {
-  vec3 res = vec3(0.5f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 asin_8cd9c9() {
+  vec3 res = vec3(0.5f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
index ccc94cd..0585d2b 100644
--- a/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/8cd9c9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn asin_8cd9c9() -> vec3<f32> {
   var res : vec3<f32> = asin(vec3<f32>(0.47942554950714111328f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_8cd9c9();
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl
index 3ca0589..da27e67 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn asin(vec<2, f16>) -> vec<2, f16>
 fn asin_b4aced() -> vec2<f16>{
   var res: vec2<f16> = asin(vec2<f16>(0.479425538604h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_b4aced();
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl
index a840403..bee4b6f 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> asin_b4aced() {
   vector<float16_t, 2> res = (float16_t(0.499755859375h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
   return;
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl
index dc9ced4..0f47db2 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asin_b4aced() {
   f16vec2 res = f16vec2(0.499755859375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asin_b4aced() {
   f16vec2 res = f16vec2(0.499755859375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl
index 1b49a75..edc58b9 100644
--- a/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/b4aced.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn asin_b4aced() -> vec2<f16> {
   var res : vec2<f16> = asin(vec2<f16>(0.479248046875h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_b4aced();
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl
index 68e7452..14138cf 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn asin(f32) -> f32
 fn asin_c0c272() -> f32{
   var res: f32 = asin(0.479425538604f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_c0c272();
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl
index daa48c8..359903a 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asin_c0c272() {
   float res = 0.5f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asin_c0c272()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl
index daa48c8..359903a 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asin_c0c272() {
   float res = 0.5f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asin_c0c272()));
   return;
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl
index fe2ace0..36c1af1 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asin_c0c272() {
   float res = 0.5f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asin_c0c272() {
   float res = 0.5f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
index 1843fe8..b03dfc2 100644
--- a/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asin/c0c272.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn asin_c0c272() -> f32 {
   var res : f32 = asin(0.47942554950714111328f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_c0c272();
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl
index 5725145..92b3a9a 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn asinh(f32) -> f32
 fn asinh_157447() -> f32{
   var res: f32 = asinh(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_157447();
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl
index 47ba749..1e73443 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asinh_157447() {
   float res = 0.88137358427047729492f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asinh_157447()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl
index 47ba749..1e73443 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asinh_157447() {
   float res = 0.88137358427047729492f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asinh_157447()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl
index 4778e9f..f29d727 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asinh_157447() {
   float res = 0.88137358427047729492f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asinh_157447() {
   float res = 0.88137358427047729492f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.wgsl
index 8aa5a02..75144b0 100644
--- a/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/157447.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn asinh_157447() -> f32 {
   var res : f32 = asinh(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_157447();
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl
index eb0902a..04238fa 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn asinh(vec<3, f32>) -> vec<3, f32>
 fn asinh_2265ee() -> vec3<f32>{
   var res: vec3<f32> = asinh(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_2265ee();
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl
index 651f7fb..44e1066 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asinh_2265ee() {
   float3 res = (0.88137358427047729492f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asinh_2265ee()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl
index 651f7fb..44e1066 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asinh_2265ee() {
   float3 res = (0.88137358427047729492f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asinh_2265ee()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl
index 1695cdc..397fcd4 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 asinh_2265ee() {
-  vec3 res = vec3(0.88137358427047729492f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 asinh_2265ee() {
+  vec3 res = vec3(0.88137358427047729492f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 asinh_2265ee() {
-  vec3 res = vec3(0.88137358427047729492f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 asinh_2265ee() {
+  vec3 res = vec3(0.88137358427047729492f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.wgsl
index 101faff..4bdc051 100644
--- a/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/2265ee.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn asinh_2265ee() -> vec3<f32> {
   var res : vec3<f32> = asinh(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_2265ee();
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl
index 6d98813..c7b562f 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn asinh(f16) -> f16
 fn asinh_468a48() -> f16{
   var res: f16 = asinh(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_468a48();
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl
index c6a2f69..f8e6306 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t asinh_468a48() {
   float16_t res = float16_t(0.88134765625h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, asinh_468a48());
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl
index 43f609c..ce4df46 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asinh_468a48() {
   float16_t res = 0.88134765625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asinh_468a48() {
   float16_t res = 0.88134765625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.wgsl
index 34aa12d..9fd5b48 100644
--- a/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/468a48.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn asinh_468a48() -> f16 {
   var res : f16 = asinh(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_468a48();
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl
index 4d5e565..ac721b9 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn asinh(vec<2, f32>) -> vec<2, f32>
 fn asinh_4a2226() -> vec2<f32>{
   var res: vec2<f32> = asinh(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_4a2226();
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl
index 1f0e389..e25547d 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asinh_4a2226() {
   float2 res = (0.88137358427047729492f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asinh_4a2226()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl
index 1f0e389..e25547d 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asinh_4a2226() {
   float2 res = (0.88137358427047729492f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asinh_4a2226()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl
index 511f020..0645f50 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asinh_4a2226() {
   vec2 res = vec2(0.88137358427047729492f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asinh_4a2226() {
   vec2 res = vec2(0.88137358427047729492f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.wgsl
index ebee2a0..37ecc02 100644
--- a/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/4a2226.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn asinh_4a2226() -> vec2<f32> {
   var res : vec2<f32> = asinh(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_4a2226();
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl
index e86d4fa..0451872 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn asinh(vec<4, f32>) -> vec<4, f32>
 fn asinh_8d2e51() -> vec4<f32>{
   var res: vec4<f32> = asinh(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_8d2e51();
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl
index 953bcc5..016e838 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asinh_8d2e51() {
   float4 res = (0.88137358427047729492f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl
index 953bcc5..016e838 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asinh_8d2e51() {
   float4 res = (0.88137358427047729492f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl
index c7a4853..7653840 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asinh_8d2e51() {
   vec4 res = vec4(0.88137358427047729492f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asinh_8d2e51() {
   vec4 res = vec4(0.88137358427047729492f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.wgsl
index b97266b..6ee201a 100644
--- a/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/8d2e51.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn asinh_8d2e51() -> vec4<f32> {
   var res : vec4<f32> = asinh(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_8d2e51();
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl
index fe5b1bb..b11d00c 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn asinh(vec<4, f16>) -> vec<4, f16>
 fn asinh_95ab2b() -> vec4<f16>{
   var res: vec4<f16> = asinh(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_95ab2b();
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl
index 1227bcf..3ed9136 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> asinh_95ab2b() {
   vector<float16_t, 4> res = (float16_t(0.88134765625h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl
index 5e011f8..5352f74 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asinh_95ab2b() {
   f16vec4 res = f16vec4(0.88134765625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asinh_95ab2b() {
   f16vec4 res = f16vec4(0.88134765625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.wgsl
index 7e3efd0..3db6b71 100644
--- a/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/95ab2b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn asinh_95ab2b() -> vec4<f16> {
   var res : vec4<f16> = asinh(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_95ab2b();
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl
index a48fd83..40915f8 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn asinh(vec<2, f16>) -> vec<2, f16>
 fn asinh_ad8f8b() -> vec2<f16>{
   var res: vec2<f16> = asinh(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_ad8f8b();
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl
index 27256ea..87468c7 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> asinh_ad8f8b() {
   vector<float16_t, 2> res = (float16_t(0.88134765625h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl
index 075ef17..d08a7c0 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asinh_ad8f8b() {
   f16vec2 res = f16vec2(0.88134765625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asinh_ad8f8b() {
   f16vec2 res = f16vec2(0.88134765625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.wgsl
index dbb25c0..fab8d57 100644
--- a/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/ad8f8b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn asinh_ad8f8b() -> vec2<f16> {
   var res : vec2<f16> = asinh(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_ad8f8b();
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl
index 2c4a14f..78f9804 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn asinh(vec<3, f16>) -> vec<3, f16>
 fn asinh_fb5e8c() -> vec3<f16>{
   var res: vec3<f16> = asinh(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_fb5e8c();
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl
index 0264a8b..2b9df19 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> asinh_fb5e8c() {
   vector<float16_t, 3> res = (float16_t(0.88134765625h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
   return;
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl
index 9192baa..e648d96 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asinh_fb5e8c() {
   f16vec3 res = f16vec3(0.88134765625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asinh_fb5e8c() {
   f16vec3 res = f16vec3(0.88134765625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.wgsl
index 34c810d..40597ec 100644
--- a/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/asinh/fb5e8c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn asinh_fb5e8c() -> vec3<f16> {
   var res : vec3<f16> = asinh(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_fb5e8c();
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl
index 1b82084..0a345b8 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn atan(f32) -> f32
 fn atan_02979a() -> f32{
   var res: f32 = atan(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_02979a();
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl
index 97a2f83..ede2de7 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan_02979a() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan_02979a()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl
index 97a2f83..ede2de7 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan_02979a() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan_02979a()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl
index 0e7a6e6..932acd3 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan_02979a() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan_02979a() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.wgsl
index d4618b1..7fb454b 100644
--- a/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/02979a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn atan_02979a() -> f32 {
   var res : f32 = atan(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_02979a();
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl
index 8d17ce3..c0ed4e1 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn atan(vec<4, f16>) -> vec<4, f16>
 fn atan_19faea() -> vec4<f16>{
   var res: vec4<f16> = atan(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_19faea();
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.dxc.hlsl
index 69c9d4d..096d0ad 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> atan_19faea() {
   vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
   return;
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.glsl
index eb12b8f..b781875 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan_19faea() {
   f16vec4 res = f16vec4(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan_19faea() {
   f16vec4 res = f16vec4(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.wgsl
index b8dc85e..985d449 100644
--- a/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/19faea.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn atan_19faea() -> vec4<f16> {
   var res : vec4<f16> = atan(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_19faea();
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl
index 4f775c0..907b23f 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn atan(vec<2, f16>) -> vec<2, f16>
 fn atan_1e1764() -> vec2<f16>{
   var res: vec2<f16> = atan(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_1e1764();
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.dxc.hlsl
index 2829f548..92555c7 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> atan_1e1764() {
   vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
   return;
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.glsl
index bc39a28..1e2ba9e 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan_1e1764() {
   f16vec2 res = f16vec2(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan_1e1764() {
   f16vec2 res = f16vec2(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.wgsl
index da96f48..0c05e2e 100644
--- a/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/1e1764.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn atan_1e1764() -> vec2<f16> {
   var res : vec2<f16> = atan(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_1e1764();
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl
index ddb283b..7cdc4a7 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn atan(vec<3, f32>) -> vec<3, f32>
 fn atan_331e6d() -> vec3<f32>{
   var res: vec3<f32> = atan(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_331e6d();
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl
index 6063ffd..231cfa3 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan_331e6d() {
   float3 res = (0.78539818525314331055f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan_331e6d()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl
index 6063ffd..231cfa3 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan_331e6d() {
   float3 res = (0.78539818525314331055f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan_331e6d()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl
index 87c014d..908b85d 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 atan_331e6d() {
-  vec3 res = vec3(0.78539818525314331055f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 atan_331e6d() {
+  vec3 res = vec3(0.78539818525314331055f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 atan_331e6d() {
-  vec3 res = vec3(0.78539818525314331055f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 atan_331e6d() {
+  vec3 res = vec3(0.78539818525314331055f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.wgsl
index ea4ad00..58f8b2a 100644
--- a/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/331e6d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn atan_331e6d() -> vec3<f32> {
   var res : vec3<f32> = atan(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_331e6d();
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl
index 23687cc..343449d 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn atan(vec<3, f16>) -> vec<3, f16>
 fn atan_a5f421() -> vec3<f16>{
   var res: vec3<f16> = atan(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a5f421();
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.dxc.hlsl
index 19c6370..4b9b9b0 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> atan_a5f421() {
   vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
   return;
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.glsl
index 6db058f..9b779fc 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan_a5f421() {
   f16vec3 res = f16vec3(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan_a5f421() {
   f16vec3 res = f16vec3(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.wgsl
index 658c0d3..8a84fe9 100644
--- a/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/a5f421.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn atan_a5f421() -> vec3<f16> {
   var res : vec3<f16> = atan(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a5f421();
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl
index 9ec45a2..235585f 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn atan(f16) -> f16
 fn atan_a7ba61() -> f16{
   var res: f16 = atan(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a7ba61();
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.dxc.hlsl
index 4e83b78..c376c4c 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t atan_a7ba61() {
   float16_t res = float16_t(0.78515625h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, atan_a7ba61());
   return;
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.glsl
index 9838168..e77ca20 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan_a7ba61() {
   float16_t res = 0.78515625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan_a7ba61() {
   float16_t res = 0.78515625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.wgsl
index ab4edac..97d2caf 100644
--- a/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/a7ba61.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn atan_a7ba61() -> f16 {
   var res : f16 = atan(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a7ba61();
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl
index 73e7b9f..e356251 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn atan(vec<4, f32>) -> vec<4, f32>
 fn atan_a8b696() -> vec4<f32>{
   var res: vec4<f32> = atan(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a8b696();
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl
index 0aa125f..bee6eca 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan_a8b696() {
   float4 res = (0.78539818525314331055f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan_a8b696()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl
index 0aa125f..bee6eca 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan_a8b696() {
   float4 res = (0.78539818525314331055f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan_a8b696()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl
index f2a9c06..89b6407 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan_a8b696() {
   vec4 res = vec4(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan_a8b696() {
   vec4 res = vec4(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.wgsl
index b9349e0..b4d2f92 100644
--- a/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/a8b696.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn atan_a8b696() -> vec4<f32> {
   var res : vec4<f32> = atan(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a8b696();
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl
index a83347c..414453a 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn atan(vec<2, f32>) -> vec<2, f32>
 fn atan_ad96e4() -> vec2<f32>{
   var res: vec2<f32> = atan(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_ad96e4();
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl
index 5789735..c447ae0 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan_ad96e4() {
   float2 res = (0.78539818525314331055f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan_ad96e4()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl
index 5789735..c447ae0 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan_ad96e4() {
   float2 res = (0.78539818525314331055f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan_ad96e4()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl
index f1dacc7..e3a6b37 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan_ad96e4() {
   vec2 res = vec2(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan_ad96e4() {
   vec2 res = vec2(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.wgsl
index 063c816..b53ee9e 100644
--- a/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan/ad96e4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn atan_ad96e4() -> vec2<f32> {
   var res : vec2<f32> = atan(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_ad96e4();
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl
index 95ebd32..b86ae12 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn atan2(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn atan2_21dfea() -> vec3<f16>{
   var res: vec3<f16> = atan2(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_21dfea();
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.dxc.hlsl
index 29599f1..c604a2c 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> atan2_21dfea() {
   vector<float16_t, 3> res = (float16_t(0.78515625h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.glsl
index 7a32317..8262a41 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan2_21dfea() {
   f16vec3 res = f16vec3(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan2_21dfea() {
   f16vec3 res = f16vec3(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.wgsl
index e12eae4..9288e61 100644
--- a/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/21dfea.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn atan2_21dfea() -> vec3<f16> {
   var res : vec3<f16> = atan2(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_21dfea();
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl
index 44aa626..25c1cd3 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn atan2(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn atan2_57fb13() -> vec2<f32>{
   var res: vec2<f32> = atan2(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_57fb13();
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl
index d5e4e2b..ecdb262 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan2_57fb13() {
   float2 res = (0.78539818525314331055f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan2_57fb13()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl
index d5e4e2b..ecdb262 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan2_57fb13() {
   float2 res = (0.78539818525314331055f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan2_57fb13()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl
index 36eea7f..afed103 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan2_57fb13() {
   vec2 res = vec2(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan2_57fb13() {
   vec2 res = vec2(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.wgsl
index 1b5ec96..719a8ce 100644
--- a/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/57fb13.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn atan2_57fb13() -> vec2<f32> {
   var res : vec2<f32> = atan2(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_57fb13();
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl
index 14e3cb2..fd4a766 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn atan2(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn atan2_93febc() -> vec2<f16>{
   var res: vec2<f16> = atan2(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_93febc();
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.dxc.hlsl
index 98fb9da..cf6d3e0 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> atan2_93febc() {
   vector<float16_t, 2> res = (float16_t(0.78515625h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.glsl
index a0ceb5b..0540f76 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan2_93febc() {
   f16vec2 res = f16vec2(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan2_93febc() {
   f16vec2 res = f16vec2(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.wgsl
index cc40397..b2c9ecd 100644
--- a/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/93febc.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn atan2_93febc() -> vec2<f16> {
   var res : vec2<f16> = atan2(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_93febc();
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl
index 7aac6c0..a2689e5 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn atan2(f32, f32) -> f32
 fn atan2_96057c() -> f32{
   var res: f32 = atan2(1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_96057c();
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl
index e9b04d9..c541ddf 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan2_96057c() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan2_96057c()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl
index e9b04d9..c541ddf 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan2_96057c() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan2_96057c()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl
index edeb3d0..3b1f6fa 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan2_96057c() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan2_96057c() {
   float res = 0.78539818525314331055f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.wgsl
index 5add643..1c90768 100644
--- a/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/96057c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn atan2_96057c() -> f32 {
   var res : f32 = atan2(1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_96057c();
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl
index e9dd48f..ae3abf7 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn atan2(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn atan2_a70d0d() -> vec3<f32>{
   var res: vec3<f32> = atan2(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_a70d0d();
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl
index 81921e4..32f945a 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan2_a70d0d() {
   float3 res = (0.78539818525314331055f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl
index 81921e4..32f945a 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan2_a70d0d() {
   float3 res = (0.78539818525314331055f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl
index 82be49c..65461a5 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 atan2_a70d0d() {
-  vec3 res = vec3(0.78539818525314331055f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 atan2_a70d0d() {
+  vec3 res = vec3(0.78539818525314331055f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 atan2_a70d0d() {
-  vec3 res = vec3(0.78539818525314331055f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 atan2_a70d0d() {
+  vec3 res = vec3(0.78539818525314331055f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.wgsl
index 28abe5f..3c61642 100644
--- a/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/a70d0d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn atan2_a70d0d() -> vec3<f32> {
   var res : vec3<f32> = atan2(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_a70d0d();
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl
index 7d8e6ee..7d87a78 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn atan2(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn atan2_ae713e() -> vec4<f32>{
   var res: vec4<f32> = atan2(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ae713e();
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl
index 4cb3dd0..196cd3a 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan2_ae713e() {
   float4 res = (0.78539818525314331055f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan2_ae713e()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl
index 4cb3dd0..196cd3a 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan2_ae713e() {
   float4 res = (0.78539818525314331055f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan2_ae713e()));
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl
index 894d232..7ba34b4 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan2_ae713e() {
   vec4 res = vec4(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan2_ae713e() {
   vec4 res = vec4(0.78539818525314331055f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.wgsl
index a7b6cb9..8c879f3 100644
--- a/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/ae713e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn atan2_ae713e() -> vec4<f32> {
   var res : vec4<f32> = atan2(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ae713e();
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl
index 28aa531..ffac395 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn atan2(f16, f16) -> f16
 fn atan2_ca698e() -> f16{
   var res: f16 = atan2(1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ca698e();
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.dxc.hlsl
index 88c9939..4ca0ece 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t atan2_ca698e() {
   float16_t res = float16_t(0.78515625h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, atan2_ca698e());
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.glsl
index c44db30..ffb24d2 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan2_ca698e() {
   float16_t res = 0.78515625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan2_ca698e() {
   float16_t res = 0.78515625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.wgsl
index e2a1eab..e22f16f 100644
--- a/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/ca698e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn atan2_ca698e() -> f16 {
   var res : f16 = atan2(1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ca698e();
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl
index e698c4a..5bf512b 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn atan2(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn atan2_d983ab() -> vec4<f16>{
   var res: vec4<f16> = atan2(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_d983ab();
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.dxc.hlsl
index fc9e832..7a06912 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> atan2_d983ab() {
   vector<float16_t, 4> res = (float16_t(0.78515625h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
   return;
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.glsl
index 844382b..1c915cc 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan2_d983ab() {
   f16vec4 res = f16vec4(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan2_d983ab() {
   f16vec4 res = f16vec4(0.78515625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.wgsl
index 2d0c8a4..fbcb101 100644
--- a/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atan2/d983ab.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn atan2_d983ab() -> vec4<f16> {
   var res : vec4<f16> = atan2(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_d983ab();
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl
index afc59bf..b54ac17 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn atanh(vec<3, f32>) -> vec<3, f32>
 fn atanh_440cca() -> vec3<f32>{
   var res: vec3<f32> = atanh(vec3<f32>(0.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_440cca();
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl
index c580811..89be210 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atanh_440cca() {
   float3 res = (0.54930615425109863281f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atanh_440cca()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl
index c580811..89be210 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atanh_440cca() {
   float3 res = (0.54930615425109863281f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atanh_440cca()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl
index a0fe4c4..8ff144c 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 atanh_440cca() {
-  vec3 res = vec3(0.54930615425109863281f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 atanh_440cca() {
+  vec3 res = vec3(0.54930615425109863281f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 atanh_440cca() {
-  vec3 res = vec3(0.54930615425109863281f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 atanh_440cca() {
+  vec3 res = vec3(0.54930615425109863281f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.wgsl
index 74cd47e..bc29d3d 100644
--- a/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/440cca.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn atanh_440cca() -> vec3<f32> {
   var res : vec3<f32> = atanh(vec3<f32>(0.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_440cca();
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl
index 888877f..4d5da68 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn atanh(vec<2, f16>) -> vec<2, f16>
 fn atanh_5bf88d() -> vec2<f16>{
   var res: vec2<f16> = atanh(vec2<f16>(0.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_5bf88d();
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.dxc.hlsl
index 233b02d..583b928 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> atanh_5bf88d() {
   vector<float16_t, 2> res = (float16_t(0.548828125h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.glsl
index 605bc33..ce18e84 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atanh_5bf88d() {
   f16vec2 res = f16vec2(0.548828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atanh_5bf88d() {
   f16vec2 res = f16vec2(0.548828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.wgsl
index 32c5673..bd914a4 100644
--- a/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/5bf88d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn atanh_5bf88d() -> vec2<f16> {
   var res : vec2<f16> = atanh(vec2<f16>(0.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_5bf88d();
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl
index c8f7fec..54e343a 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn atanh(f32) -> f32
 fn atanh_7997d8() -> f32{
   var res: f32 = atanh(0.5f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_7997d8();
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl
index 8b83a7e..ee95b88 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atanh_7997d8() {
   float res = 0.54930615425109863281f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atanh_7997d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl
index 8b83a7e..ee95b88 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atanh_7997d8() {
   float res = 0.54930615425109863281f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atanh_7997d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl
index 7383a07..1b365db 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atanh_7997d8() {
   float res = 0.54930615425109863281f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atanh_7997d8() {
   float res = 0.54930615425109863281f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.wgsl
index 2886b24..2dd3d4e 100644
--- a/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/7997d8.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn atanh_7997d8() -> f32 {
   var res : f32 = atanh(0.5f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_7997d8();
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl
index d5b5123..e91c1b9 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn atanh(vec<2, f32>) -> vec<2, f32>
 fn atanh_c0e634() -> vec2<f32>{
   var res: vec2<f32> = atanh(vec2<f32>(0.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_c0e634();
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl
index 9762fce..60711e5 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atanh_c0e634() {
   float2 res = (0.54930615425109863281f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atanh_c0e634()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl
index 9762fce..60711e5 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atanh_c0e634() {
   float2 res = (0.54930615425109863281f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atanh_c0e634()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl
index d320c75..9f87bad 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atanh_c0e634() {
   vec2 res = vec2(0.54930615425109863281f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atanh_c0e634() {
   vec2 res = vec2(0.54930615425109863281f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.wgsl
index 6098982..211b107 100644
--- a/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/c0e634.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn atanh_c0e634() -> vec2<f32> {
   var res : vec2<f32> = atanh(vec2<f32>(0.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_c0e634();
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl
index 19dea1b..9a9504d 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn atanh(f16) -> f16
 fn atanh_d2d8cd() -> f16{
   var res: f16 = atanh(0.5h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_d2d8cd();
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.dxc.hlsl
index f6d3b52..c7f7247 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t atanh_d2d8cd() {
   float16_t res = float16_t(0.548828125h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.glsl
index c6b368b..e4e149f 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atanh_d2d8cd() {
   float16_t res = 0.548828125hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atanh_d2d8cd() {
   float16_t res = 0.548828125hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.wgsl
index 4cd828f..ec662a5 100644
--- a/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/d2d8cd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn atanh_d2d8cd() -> f16 {
   var res : f16 = atanh(0.5h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_d2d8cd();
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl
index 3b0dbe2..ae3e3a8 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn atanh(vec<4, f16>) -> vec<4, f16>
 fn atanh_e3b450() -> vec4<f16>{
   var res: vec4<f16> = atanh(vec4<f16>(0.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_e3b450();
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.dxc.hlsl
index f8b9d3c..fb0d46d 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> atanh_e3b450() {
   vector<float16_t, 4> res = (float16_t(0.548828125h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.glsl
index 3945736..1665ca4 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atanh_e3b450() {
   f16vec4 res = f16vec4(0.548828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atanh_e3b450() {
   f16vec4 res = f16vec4(0.548828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.wgsl
index 37f1c87b..4325875 100644
--- a/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/e3b450.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn atanh_e3b450() -> vec4<f16> {
   var res : vec4<f16> = atanh(vec4<f16>(0.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_e3b450();
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl
index fc74757..729e04d 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn atanh(vec<3, f16>) -> vec<3, f16>
 fn atanh_ec4b06() -> vec3<f16>{
   var res: vec3<f16> = atanh(vec3<f16>(0.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_ec4b06();
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.dxc.hlsl
index fd1469e..53406e2 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> atanh_ec4b06() {
   vector<float16_t, 3> res = (float16_t(0.548828125h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.glsl
index 6679af2..5ba498f 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atanh_ec4b06() {
   f16vec3 res = f16vec3(0.548828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atanh_ec4b06() {
   f16vec3 res = f16vec3(0.548828125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.wgsl
index c4022a4..2229c38 100644
--- a/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/ec4b06.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn atanh_ec4b06() -> vec3<f16> {
   var res : vec3<f16> = atanh(vec3<f16>(0.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_ec4b06();
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl
index 6d78d10..08a6c8c 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn atanh(vec<4, f32>) -> vec<4, f32>
 fn atanh_f3e01b() -> vec4<f32>{
   var res: vec4<f32> = atanh(vec4<f32>(0.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_f3e01b();
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl
index c7ad1e5..171075c 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atanh_f3e01b() {
   float4 res = (0.54930615425109863281f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl
index c7ad1e5..171075c 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atanh_f3e01b() {
   float4 res = (0.54930615425109863281f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
   return;
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl
index 8d25f6b..01a7247 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atanh_f3e01b() {
   vec4 res = vec4(0.54930615425109863281f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atanh_f3e01b() {
   vec4 res = vec4(0.54930615425109863281f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.wgsl
index 20076e3..349bf20 100644
--- a/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atanh/f3e01b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn atanh_f3e01b() -> vec4<f32> {
   var res : vec4<f32> = atanh(vec4<f32>(0.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_f3e01b();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl
index 46f56e8..8033114 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicAdd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicAdd(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_794055();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.dxc.hlsl
index 4414d58..d9e73b2 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAdd_794055() {
   int atomic_result_1 = 0;
   InterlockedAdd(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.fxc.hlsl
index 4414d58..d9e73b2 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAdd_794055() {
   int atomic_result_1 = 0;
   InterlockedAdd(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.glsl
index 4842bc3..226ce1b 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicAdd_794055() {
   int res = atomicAdd(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAdd_794055();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm
index 9642631..934356e 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAdd_794055 "atomicAdd_794055"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.wgsl
index d7314d0..30b7e66 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/794055.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicAdd_794055() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_794055();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl
index d0d16c9..c3576f7 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicAdd(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_8a199a();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.dxc.hlsl
index 0b297df..426ae2e0 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAdd(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_8a199a()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.fxc.hlsl
index 0b297df..426ae2e0 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAdd(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_8a199a()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl
index e2460e8..171429f 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAdd_8a199a();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAdd_8a199a();
 }
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.spvasm
index c02db4e..d35c4bd 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAdd_8a199a "atomicAdd_8a199a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.wgsl
index 7625b56..f35c8f1 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_8a199a();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl
index af7c2e6..bff1000 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicAdd(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_d32fe4();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl
index e3ca1d6..94507aa 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAdd(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl
index e3ca1d6..94507aa 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAdd(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl
index eebda16..35cfebd 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAdd_d32fe4();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAdd_d32fe4();
 }
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.spvasm
index e4b796a..e8cf4a6 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAdd_d32fe4 "atomicAdd_d32fe4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.wgsl
index 742f8af..ede4ae8 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_d32fe4();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl
index 0606ca6..2ed6627 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicAdd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicAdd(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_d5db1d();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl
index 969ffdd..e6157c4 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAdd_d5db1d() {
   uint atomic_result_1 = 0u;
   InterlockedAdd(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl
index 969ffdd..e6157c4 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAdd_d5db1d() {
   uint atomic_result_1 = 0u;
   InterlockedAdd(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.glsl
index 7998ca6..29b7755 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicAdd_d5db1d() {
   uint res = atomicAdd(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAdd_d5db1d();
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm
index 2df227c..8adc4ee 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAdd_d5db1d "atomicAdd_d5db1d"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.wgsl
index beaecbf..834c13d 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d5db1d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicAdd_d5db1d() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_d5db1d();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl
index 451b4fd..f59ab26 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicAnd(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_152966();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.dxc.hlsl
index aa185c2..ac49115 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAnd(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_152966()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.fxc.hlsl
index aa185c2..ac49115 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAnd(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_152966()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl
index 65b743f..459e645 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAnd_152966();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAnd_152966();
 }
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.spvasm
index 3c15140..632c0e8 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAnd_152966 "atomicAnd_152966"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.wgsl
index 013deef..5b8dfbd 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_152966();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl
index 44f4055..a9335e5 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicAnd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicAnd(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_34edd3();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.dxc.hlsl
index 974b8ec..7558c3a 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAnd_34edd3() {
   uint atomic_result_1 = 0u;
   InterlockedAnd(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.fxc.hlsl
index 974b8ec..7558c3a 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAnd_34edd3() {
   uint atomic_result_1 = 0u;
   InterlockedAnd(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.glsl
index ed37ef5..fe6bd99 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicAnd_34edd3() {
   uint res = atomicAnd(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAnd_34edd3();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm
index 8698892..0b18221 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAnd_34edd3 "atomicAnd_34edd3"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.wgsl
index a728837..f4b5909 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/34edd3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicAnd_34edd3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_34edd3();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl
index 8b7e9f1..2338076 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicAnd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicAnd(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_45a819();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.dxc.hlsl
index 13cfa74..e5775cf 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAnd_45a819() {
   int atomic_result_1 = 0;
   InterlockedAnd(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.fxc.hlsl
index 13cfa74..e5775cf 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAnd_45a819() {
   int atomic_result_1 = 0;
   InterlockedAnd(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.glsl
index 1beaa4d..d8cf966 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicAnd_45a819() {
   int res = atomicAnd(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAnd_45a819();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm
index 81e69c0..ccc63cb 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAnd_45a819 "atomicAnd_45a819"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.wgsl
index 029277d..2dc60b6 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/45a819.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicAnd_45a819() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_45a819();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl
index bdd856d..98e180f 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicAnd(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_85a8d9();
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl
index 641db15..ed5df57 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAnd(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_85a8d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl
index 641db15..ed5df57 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAnd(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_85a8d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl
index a8265d5..f25bedc 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAnd_85a8d9();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAnd_85a8d9();
 }
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.spvasm
index c746864..4652d2a 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAnd_85a8d9 "atomicAnd_85a8d9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.wgsl
index a41bd0c..2ad4b77 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_85a8d9();
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl
index a0cafbd..ad2eaef 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<i32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicCompareExchangeWeak(ptr<storage, atomic<i32>, read_write>, i32, i32) -> __atomic_compare_exchange_result<i32>
 fn atomicCompareExchangeWeak_1bd40a() {
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl
index 5e1d4d3..53eff72 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
   int old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_i32 sb_rwatomicCompareExchangeWeak(uint offset, int compare, int value) {
   atomic_compare_exchange_result_i32 result=(atomic_compare_exchange_result_i32)0;
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl
index 5e1d4d3..53eff72 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
   int old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_i32 sb_rwatomicCompareExchangeWeak(uint offset, int compare, int value) {
   atomic_compare_exchange_result_i32 result=(atomic_compare_exchange_result_i32)0;
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
index 8428b3b..cf35d7e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
@@ -12,7 +12,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -43,7 +43,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm
index 0b22200..08cb660 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm
@@ -25,7 +25,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
                OpMemberDecorate %__atomic_compare_exchange_result_i32 0 Offset 0
                OpMemberDecorate %__atomic_compare_exchange_result_i32 1 Offset 4
         %int = OpTypeInt 32 1
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl
index 659a295..5d1d599 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<i32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicCompareExchangeWeak_1bd40a() {
   var res = atomicCompareExchangeWeak(&(sb_rw.arg_0), 1i, 1i);
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl
index 0648c03..d1fee76 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<u32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicCompareExchangeWeak(ptr<storage, atomic<u32>, read_write>, u32, u32) -> __atomic_compare_exchange_result<u32>
 fn atomicCompareExchangeWeak_63d8e6() {
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl
index f76cde8..904b54e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
   uint old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_u32 sb_rwatomicCompareExchangeWeak(uint offset, uint compare, uint value) {
   atomic_compare_exchange_result_u32 result=(atomic_compare_exchange_result_u32)0;
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl
index f76cde8..904b54e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
   uint old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_u32 sb_rwatomicCompareExchangeWeak(uint offset, uint compare, uint value) {
   atomic_compare_exchange_result_u32 result=(atomic_compare_exchange_result_u32)0;
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
index 289c84e..81e173e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
@@ -12,7 +12,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -43,7 +43,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm
index b8e4d5a..3ed657e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm
@@ -25,7 +25,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
                OpMemberDecorate %__atomic_compare_exchange_result_u32 0 Offset 0
                OpMemberDecorate %__atomic_compare_exchange_result_u32 1 Offset 4
        %uint = OpTypeInt 32 0
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl
index d637fb7..af3d89f 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<u32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicCompareExchangeWeak_63d8e6() {
   var res = atomicCompareExchangeWeak(&(sb_rw.arg_0), 1u, 1u);
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl
index 43119a42..0d71a18 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicExchange(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicExchange(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_0a5dca();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl
index 6017ce9..168412e 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicExchange_0a5dca() {
   uint atomic_result_1 = 0u;
   InterlockedExchange(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl
index 6017ce9..168412e 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicExchange_0a5dca() {
   uint atomic_result_1 = 0u;
   InterlockedExchange(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.glsl
index fd863a6..57f7482 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicExchange_0a5dca() {
   uint res = atomicExchange(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicExchange_0a5dca();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm
index a9b9c30..eb14776 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicExchange_0a5dca "atomicExchange_0a5dca"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.wgsl
index c704477..ea92a4f 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/0a5dca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicExchange_0a5dca() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_0a5dca();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl
index 7c86a9b..842c686 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicExchange(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_d59712();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.dxc.hlsl
index cb4da6f..da66746 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicExchange(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_d59712()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.fxc.hlsl
index cb4da6f..da66746 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicExchange(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_d59712()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl
index 8737034..d4d53e1 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicExchange_d59712();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicExchange_d59712();
 }
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.spvasm
index 44d58a6..20e3e0e 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicExchange_d59712 "atomicExchange_d59712"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.wgsl
index c5cec4f..f032084 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_d59712();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl
index df56f43..c7ef8f6 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicExchange(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicExchange(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_e114ba();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.dxc.hlsl
index 2e6c48e..19872d3 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicExchange_e114ba() {
   int atomic_result_1 = 0;
   InterlockedExchange(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.fxc.hlsl
index 2e6c48e..19872d3 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicExchange_e114ba() {
   int atomic_result_1 = 0;
   InterlockedExchange(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.glsl
index f922c89..1cc1e7f 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicExchange_e114ba() {
   int res = atomicExchange(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicExchange_e114ba();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm
index 105cc22..c9cffcd 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicExchange_e114ba "atomicExchange_e114ba"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.wgsl
index ca6b2f0..114af56 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/e114ba.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicExchange_e114ba() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_e114ba();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl
index ffd7903..fe971f4 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicExchange(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_f2e22f();
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl
index b35f515..35adcab 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicExchange(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl
index b35f515..35adcab 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicExchange(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl
index e5f6612..9dc4c67 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicExchange_f2e22f();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicExchange_f2e22f();
 }
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.spvasm
index cadd978..33c65bf 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicExchange_f2e22f "atomicExchange_f2e22f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.wgsl
index 71a43d2..211822b 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_f2e22f();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl
index 795a031..83186e8 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicLoad(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_0806ad();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.dxc.hlsl
index b94cd03..c0628a9 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.fxc.hlsl
index b94cd03..c0628a9 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl
index ea7cd65..8ad120d 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicLoad_0806ad();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicLoad_0806ad();
 }
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.spvasm
index fd5a06d..e161f65 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicLoad_0806ad "atomicLoad_0806ad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.wgsl
index 2c903b2..233e7a5 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_0806ad();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl
index 6473b82..c9dbddc 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicLoad(ptr<workgroup, atomic<u32>, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_361bf1();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.dxc.hlsl
index fcce762..ec330e3 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicLoad_361bf1() {
   uint atomic_result_1 = 0u;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.fxc.hlsl
index fcce762..ec330e3 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicLoad_361bf1() {
   uint atomic_result_1 = 0u;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.glsl
index 8d499d9..65d5886 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicLoad_361bf1() {
   uint res = atomicOr(arg_0, 0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicLoad_361bf1();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm
index a89c037..55a9239 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicLoad_361bf1 "atomicLoad_361bf1"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.wgsl
index 4048461..2b2b438 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/361bf1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicLoad_361bf1() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_361bf1();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl
index e750890..6e3d140 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicLoad(ptr<workgroup, atomic<i32>, read_write>) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_afcc03();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.dxc.hlsl
index 72a398c..027d415 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicLoad_afcc03() {
   int atomic_result_1 = 0;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.fxc.hlsl
index 72a398c..027d415 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicLoad_afcc03() {
   int atomic_result_1 = 0;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.glsl
index f900036..6ba0c3a 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicLoad_afcc03() {
   int res = atomicOr(arg_0, 0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicLoad_afcc03();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm
index 8c12b2d..b811840 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicLoad_afcc03 "atomicLoad_afcc03"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.wgsl
index 5ad6ac5..10a08d8 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/afcc03.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicLoad_afcc03() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_afcc03();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl
index 4db312c..0475140 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicLoad(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_fe6cc3();
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl
index f415ea1..9102a89 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_fe6cc3()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl
index f415ea1..9102a89 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_fe6cc3()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl
index 4818a88..1e51e81 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicLoad_fe6cc3();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicLoad_fe6cc3();
 }
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.spvasm
index 43ae670..663e2ec 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicLoad_fe6cc3 "atomicLoad_fe6cc3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.wgsl
index 34e21b9..c43a33a 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_fe6cc3();
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl
index e4cf140..7ac4caf 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicMax(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_51b9be();
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.dxc.hlsl
index 64e19cd..4469d13 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMax(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_51b9be()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.fxc.hlsl
index 64e19cd..4469d13 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMax(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_51b9be()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl
index a600401..52df8e8 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMax_51b9be();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMax_51b9be();
 }
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.spvasm
index f7554a4..7b3b2c7 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMax_51b9be "atomicMax_51b9be"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.wgsl
index dd09d3b..db9ffa3 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_51b9be();
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl
index 7aca00e..2fc12b6 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicMax(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_92aa72();
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.dxc.hlsl
index 75c057c..39acb63 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMax(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.fxc.hlsl
index 75c057c..39acb63 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMax(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl
index c659fe3..8b03714 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMax_92aa72();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMax_92aa72();
 }
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.spvasm
index a6b4042..5ab0520 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMax_92aa72 "atomicMax_92aa72"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.wgsl
index f107570..bbdbc6d 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_92aa72();
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl
index 293dd7a..1162c54 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicMax(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicMax(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_a89cc3();
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.dxc.hlsl
index 10a8eea..3f39206 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMax_a89cc3() {
   int atomic_result_1 = 0;
   InterlockedMax(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.fxc.hlsl
index 10a8eea..3f39206 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMax_a89cc3() {
   int atomic_result_1 = 0;
   InterlockedMax(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.glsl
index 86c5d01..3e349d9 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicMax_a89cc3() {
   int res = atomicMax(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMax_a89cc3();
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm
index a098105..18d2b13 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMax_a89cc3 "atomicMax_a89cc3"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.wgsl
index c95ef61..5e8962d 100644
--- a/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/a89cc3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicMax_a89cc3() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_a89cc3();
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl
index 6f5976c..7782d1f 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicMax(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicMax(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_beccfc();
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.dxc.hlsl
index 6ab50e4..8c4fd3a 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMax_beccfc() {
   uint atomic_result_1 = 0u;
   InterlockedMax(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.fxc.hlsl
index 6ab50e4..8c4fd3a 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMax_beccfc() {
   uint atomic_result_1 = 0u;
   InterlockedMax(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.glsl
index 700c957..f9aa467 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicMax_beccfc() {
   uint res = atomicMax(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMax_beccfc();
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm
index 4c0eeff..6cde732 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMax_beccfc "atomicMax_beccfc"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.wgsl
index 6f80fe2..99a0f8e 100644
--- a/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMax/beccfc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicMax_beccfc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_beccfc();
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl
index 0a4f3c0..5955108 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicMin(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicMin(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_278235();
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.dxc.hlsl
index 227c46f..2bb8728 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMin_278235() {
   int atomic_result_1 = 0;
   InterlockedMin(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.fxc.hlsl
index 227c46f..2bb8728 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMin_278235() {
   int atomic_result_1 = 0;
   InterlockedMin(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.glsl
index 1a352735..1c5b37c 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicMin_278235() {
   int res = atomicMin(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMin_278235();
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm
index 02b5dc0..53252e8 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMin_278235 "atomicMin_278235"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.wgsl
index 6e317e2..ab8910d 100644
--- a/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/278235.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicMin_278235() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_278235();
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl
index 973a1ac..cc8e9e2 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicMin(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicMin(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_69d383();
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.dxc.hlsl
index 3a023a2..08683c9 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMin_69d383() {
   uint atomic_result_1 = 0u;
   InterlockedMin(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.fxc.hlsl
index 3a023a2..08683c9 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMin_69d383() {
   uint atomic_result_1 = 0u;
   InterlockedMin(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.glsl
index a888bde..0662d05 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicMin_69d383() {
   uint res = atomicMin(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMin_69d383();
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm
index 088b7a1..c069ba8 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMin_69d383 "atomicMin_69d383"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.wgsl
index abbeaa1..ee9d10c 100644
--- a/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/69d383.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicMin_69d383() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_69d383();
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl
index 72bf754..9f1b584 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicMin(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_8e38dc();
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.dxc.hlsl
index 2d2259e..baf35dd 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMin(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.fxc.hlsl
index 2d2259e..baf35dd 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMin(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl
index 64a897c..17ed2ee 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMin_8e38dc();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMin_8e38dc();
 }
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.spvasm
index 43571b1..ef5e929 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMin_8e38dc "atomicMin_8e38dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.wgsl
index 6e81a99..b166cf5 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_8e38dc();
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl
index ef426db..869fe73 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicMin(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_c67a74();
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.dxc.hlsl
index 44d4f81..45b4727 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMin(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_c67a74()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.fxc.hlsl
index 44d4f81..45b4727 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMin(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_c67a74()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl
index ba41e32..c803644 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMin_c67a74();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMin_c67a74();
 }
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.spvasm
index 90e0ad0..75b0aa7 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMin_c67a74 "atomicMin_c67a74"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.wgsl
index 33d6ea1..7f9a1c5 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_c67a74();
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl
index cdf7200..192b72a 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicOr(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicOr(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_5e3d61();
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.dxc.hlsl
index 78e3189..651db5c 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicOr_5e3d61() {
   uint atomic_result_1 = 0u;
   InterlockedOr(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.fxc.hlsl
index 78e3189..651db5c 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicOr_5e3d61() {
   uint atomic_result_1 = 0u;
   InterlockedOr(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.glsl
index 28b269f..ca855d4 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicOr_5e3d61() {
   uint res = atomicOr(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicOr_5e3d61();
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm
index 7fde44e..64f9e4a 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicOr_5e3d61 "atomicOr_5e3d61"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.wgsl
index 4625564..482bbe1 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e3d61.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicOr_5e3d61() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_5e3d61();
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl
index b0a1ca0..2ae9b33 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicOr(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_5e95d4();
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.dxc.hlsl
index d01130a..8c07154 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicOr(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_5e95d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.fxc.hlsl
index d01130a..8c07154 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicOr(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_5e95d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl
index be5110d..a9394f0 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicOr_5e95d4();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicOr_5e95d4();
 }
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.spvasm
index b27820f..07d3a6a 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicOr_5e95d4 "atomicOr_5e95d4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.wgsl
index 5f9d6ac..6dca378 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_5e95d4();
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl
index 436ff83..885a22e 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicOr(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_8d96a0();
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.dxc.hlsl
index 2f245b8..b75dbdf 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicOr(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.fxc.hlsl
index 2f245b8..b75dbdf 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicOr(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl
index dfc790e..3436916 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicOr_8d96a0();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicOr_8d96a0();
 }
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.spvasm
index ba974c2..1dc154d 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicOr_8d96a0 "atomicOr_8d96a0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.wgsl
index dc911af..214770b 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_8d96a0();
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl
index d5b0da0..545612b 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicOr(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicOr(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_d09248();
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.dxc.hlsl
index eb8c948..09574a1 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicOr_d09248() {
   int atomic_result_1 = 0;
   InterlockedOr(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.fxc.hlsl
index eb8c948..09574a1 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicOr_d09248() {
   int atomic_result_1 = 0;
   InterlockedOr(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.glsl
index 498c2f8..296b7bc 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicOr_d09248() {
   int res = atomicOr(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicOr_d09248();
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm
index bca413a..8af35d3 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicOr_d09248 "atomicOr_d09248"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.wgsl
index e19711c..0b274f4 100644
--- a/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicOr/d09248.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicOr_d09248() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_d09248();
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl
index 0f87621..44ee180 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<u32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicStore(ptr<storage, atomic<u32>, read_write>, u32)
 fn atomicStore_cdc29e() {
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.dxc.hlsl
index 0942aa3..b4a06c1 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.dxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, uint value) {
   uint ignored;
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.fxc.hlsl
index 0942aa3..b4a06c1 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, uint value) {
   uint ignored;
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl
index cf3a80a..17ce79e 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -28,7 +28,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.spvasm
index f897a1f..340f0a1 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.spvasm
@@ -21,7 +21,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
        %uint = OpTypeInt 32 0
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.wgsl
index f1112c7..61aa944 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<u32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicStore_cdc29e() {
   atomicStore(&(sb_rw.arg_0), 1u);
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl
index 729033b..9250c71 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<i32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicStore(ptr<storage, atomic<i32>, read_write>, i32)
 fn atomicStore_d1e9a6() {
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl
index 298e13b..973c021 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, int value) {
   int ignored;
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl
index 298e13b..973c021 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, int value) {
   int ignored;
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl
index a48d9ac..c816389 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -28,7 +28,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.spvasm
index 6063632..56551ad 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.spvasm
@@ -21,7 +21,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
         %int = OpTypeInt 32 1
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.wgsl
index a6333a8..cc8845b 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<i32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicStore_d1e9a6() {
   atomicStore(&(sb_rw.arg_0), 1i);
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl
index 5487118..4bde7f1 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicSub(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_051100();
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.dxc.hlsl
index 3a897b9..c475944 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicSub(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_051100()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.fxc.hlsl
index 3a897b9..c475944 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicSub(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_051100()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl
index 755a5b9..0c42009 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicSub_051100();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicSub_051100();
 }
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.spvasm
index 8dba4ad..d86f8f5 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicSub_051100 "atomicSub_051100"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.wgsl
index cb87ab6..21e03a2 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_051100();
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl
index b55d84b..a00f4a2 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicSub(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicSub(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_0d26c2();
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.dxc.hlsl
index b421d56..732cab9f 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicSub_0d26c2() {
   uint atomic_result_1 = 0u;
   InterlockedAdd(arg_0, -(1u), atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.fxc.hlsl
index b421d56..732cab9f 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicSub_0d26c2() {
   uint atomic_result_1 = 0u;
   InterlockedAdd(arg_0, -(1u), atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.glsl
index 6680b4f..2b96346 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicSub_0d26c2() {
   uint res = atomicAdd(arg_0, -(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicSub_0d26c2();
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm
index 9a24404..1fccf18 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicSub_0d26c2 "atomicSub_0d26c2"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.wgsl
index 6c1511b..1ccda8a 100644
--- a/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/0d26c2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicSub_0d26c2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_0d26c2();
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl
index 02f418d..f4e3a65 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicSub(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_15bfc9();
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.dxc.hlsl
index c3b2fe26..105654a 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicSub(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_15bfc9()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.fxc.hlsl
index c3b2fe26..105654a 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicSub(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_15bfc9()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl
index 40b4177..8cfd422 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicSub_15bfc9();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicSub_15bfc9();
 }
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.spvasm
index eeba379..c049339 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicSub_15bfc9 "atomicSub_15bfc9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.wgsl
index d2e5883..c15c0ae 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_15bfc9();
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl
index 830aa4d..9bdbcdf 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicSub(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicSub(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_77883a();
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.dxc.hlsl
index 8152eb5..d6f0f5e 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicSub_77883a() {
   int atomic_result_1 = 0;
   InterlockedAdd(arg_0, -(1), atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.fxc.hlsl
index 8152eb5..d6f0f5e 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicSub_77883a() {
   int atomic_result_1 = 0;
   InterlockedAdd(arg_0, -(1), atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.glsl
index c3ada21..2b37767 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicSub_77883a() {
   int res = atomicAdd(arg_0, -(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicSub_77883a();
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm
index 231edce..0ba6ed4 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicSub_77883a "atomicSub_77883a"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.wgsl
index b30c9e5..cbe5ed4 100644
--- a/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicSub/77883a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicSub_77883a() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_77883a();
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl
index 108bff5..7ff41af 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicXor(&sb_rw.arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_54510e();
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.dxc.hlsl
index 950af1b..3b2221f 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicXor(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_54510e()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.fxc.hlsl
index 950af1b..3b2221f 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicXor(uint offset, uint value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_54510e()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl
index 5282ba0..5289224 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicXor_54510e();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicXor_54510e();
 }
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.spvasm
index 62f80dd..9900621 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicXor_54510e "atomicXor_54510e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.wgsl
index 6313c97..d494b87 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_54510e();
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl
index a2a6a2d..4ef9b3f 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicXor(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicXor(&arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_75dc95();
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.dxc.hlsl
index a61e8a4..12b1803 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicXor_75dc95() {
   int atomic_result_1 = 0;
   InterlockedXor(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.fxc.hlsl
index a61e8a4..12b1803 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicXor_75dc95() {
   int atomic_result_1 = 0;
   InterlockedXor(arg_0, 1, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.glsl
index 7af421a..ed232a3 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicXor_75dc95() {
   int res = atomicXor(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicXor_75dc95();
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm
index 3ede523..be95c6f 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicXor_75dc95 "atomicXor_75dc95"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.wgsl
index 0fc1273..83da080 100644
--- a/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/75dc95.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicXor_75dc95() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_75dc95();
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl
index 240e6b8..167e227 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicXor(&sb_rw.arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_c1b78c();
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.dxc.hlsl
index dd91af6..c14f88a 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicXor(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.fxc.hlsl
index dd91af6..c14f88a 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicXor(uint offset, int value) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
   return;
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl
index 2d46379..4b04c4f 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicXor_c1b78c();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicXor_c1b78c();
 }
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.spvasm
index fea86d9..3c4bd84 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicXor_c1b78c "atomicXor_c1b78c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.wgsl
index 3bb8058..b6d4975 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_c1b78c();
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl
index aa01a03..3cbd5e5 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicXor(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicXor(&arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_c8e6be();
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.dxc.hlsl
index 67b32db..bb3cf54 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicXor_c8e6be() {
   uint atomic_result_1 = 0u;
   InterlockedXor(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.fxc.hlsl
index 67b32db..bb3cf54 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicXor_c8e6be() {
   uint atomic_result_1 = 0u;
   InterlockedXor(arg_0, 1u, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.glsl
index 5ab8ae4..fbc0efa 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicXor_c8e6be() {
   uint res = atomicXor(arg_0, 1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicXor_c8e6be();
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm
index aecce47..2f79cf4 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicXor_c8e6be "atomicXor_c8e6be"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.wgsl
index da9f9e8..c572af2 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c8e6be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicXor_c8e6be() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_c8e6be();
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl
index 09c9df8..2b26d51 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn bitcast<T: vec<3, f32>>(vec<3, u32>) -> vec<3, f32>
 fn bitcast_0fe0c9() -> vec3<f32>{
   var res: vec3<f32> = bitcast<vec3<f32>>(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_0fe0c9();
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.dxc.hlsl
index 8eb6193..6493963 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_0fe0c9() {
   float3 res = (1.40129846e-45f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.fxc.hlsl
index 8eb6193..6493963 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_0fe0c9() {
   float3 res = (1.40129846e-45f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.glsl
index c464fc6..c2a2f38 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 bitcast_0fe0c9() {
-  vec3 res = vec3(1.40129846e-45f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 bitcast_0fe0c9() {
+  vec3 res = vec3(1.40129846e-45f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 bitcast_0fe0c9() {
-  vec3 res = vec3(1.40129846e-45f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 bitcast_0fe0c9() {
+  vec3 res = vec3(1.40129846e-45f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.wgsl
index f2687b9..6edb47b 100644
--- a/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/0fe0c9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn bitcast_0fe0c9() -> vec3<f32> {
   var res : vec3<f32> = bitcast<vec3<f32>>(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_0fe0c9();
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl
index 6e15e43..0fa4c0a 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, ia>) -> vec<4, u32>
 fn bitcast_160c09() -> vec4<u32>{
   var res: vec4<u32> = bitcast<vec4<u32>>(vec4(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_160c09();
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.dxc.hlsl
index e41e53a..9e07701 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_160c09() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_160c09()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.fxc.hlsl
index e41e53a..9e07701 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_160c09() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_160c09()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.glsl
index 1edce90..c9610f9 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_160c09() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_160c09() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.wgsl
index a0990ae..307d2d6 100644
--- a/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/160c09.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_160c09() -> vec4<u32> {
   var res : vec4<u32> = bitcast<vec4<u32>>(vec4(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_160c09();
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl
index e08b389..a8e21df 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(f32) -> i32
 fn bitcast_16cba4() -> i32{
   var res: i32 = bitcast<i32>(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_16cba4();
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.dxc.hlsl
index e1e6cb5..cd5cce7 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_16cba4() {
   int res = 1065353216;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_16cba4()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.fxc.hlsl
index e1e6cb5..cd5cce7 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_16cba4() {
   int res = 1065353216;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_16cba4()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.glsl
index f9dbd9d..61e6af3 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_16cba4() {
   int res = 1065353216;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_16cba4() {
   int res = 1065353216;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.wgsl
index c5ca87f..a405c3c 100644
--- a/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/16cba4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_16cba4() -> i32 {
   var res : i32 = bitcast<i32>(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_16cba4();
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl
index 514d4db..366f026 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, i32>) -> vec<2, u32>
 fn bitcast_1c3b31() -> vec2<u32>{
   var res: vec2<u32> = bitcast<vec2<u32>>(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1c3b31();
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.dxc.hlsl
index 372b81c..a4fa0ee 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_1c3b31() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_1c3b31()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.fxc.hlsl
index 372b81c..a4fa0ee 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_1c3b31() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_1c3b31()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.glsl
index 54566b2..4123221 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_1c3b31() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_1c3b31() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.wgsl
index f5bfb12..347428a 100644
--- a/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/1c3b31.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_1c3b31() -> vec2<u32> {
   var res : vec2<u32> = bitcast<vec2<u32>>(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1c3b31();
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl
index 431ac6f..a980a0c 100644
--- a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec<2, f16>>(vec<2, f16>) -> vec<2, f16>
 fn bitcast_1df11f() -> vec2<f16>{
   var res: vec2<f16> = bitcast<vec2<f16>>(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1df11f();
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.dxc.hlsl
index 67ae6d3..c10adb0 100644
--- a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_1df11f() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.glsl
index 303dd2b..3d2bdae 100644
--- a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_1df11f() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_1df11f() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.wgsl
index f9caadf..abb0b2b 100644
--- a/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/1df11f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_1df11f() -> vec2<f16> {
   var res : vec2<f16> = bitcast<vec2<f16>>(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1df11f();
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl
index c8c91e2..1efa614 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec2<i32>>(vec4<f16>) -> vec2<i32>
 fn bitcast_214f23() -> vec2<i32>{
   var res: vec2<i32> = bitcast<vec2<i32>>(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_214f23();
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.dxc.hlsl
index 4b5bf01..c437e9a 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_214f23() {
   int2 res = (1006648320).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_214f23()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.fxc.hlsl
index 4b5bf01..c437e9a 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_214f23() {
   int2 res = (1006648320).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_214f23()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.glsl
index bc09ebb..e2adf61 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_214f23() {
   ivec2 res = ivec2(1006648320);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_214f23() {
   ivec2 res = ivec2(1006648320);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.wgsl
index f913305..a7ecfa2 100644
--- a/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/214f23.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_214f23() -> vec2<i32> {
   var res : vec2<i32> = bitcast<vec2<i32>>(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_214f23();
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl
index c094fd7..44cebea 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(vec2<f16>) -> f32
 fn bitcast_23c8bd() -> f32{
   var res: f32 = bitcast<f32>(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_23c8bd();
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.dxc.hlsl
index e95f329..6e12ed69 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_23c8bd() {
   float res = 0.00782680511474609375f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.fxc.hlsl
index e95f329..6e12ed69 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_23c8bd() {
   float res = 0.00782680511474609375f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.glsl
index c6b1739..92ee280 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_23c8bd() {
   float res = 0.00782680511474609375f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_23c8bd() {
   float res = 0.00782680511474609375f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.wgsl
index fb0dc12..1b99da7 100644
--- a/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/23c8bd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_23c8bd() -> f32 {
   var res : f32 = bitcast<f32>(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_23c8bd();
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl
index ad5685c..89e84be 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec<2, f32>>(vec<2, u32>) -> vec<2, f32>
 fn bitcast_2421c8() -> vec2<f32>{
   var res: vec2<f32> = bitcast<vec2<f32>>(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2421c8();
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.dxc.hlsl
index cc964f8..bfa27fa 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2421c8() {
   float2 res = (1.40129846e-45f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.fxc.hlsl
index cc964f8..bfa27fa 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2421c8() {
   float2 res = (1.40129846e-45f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.glsl
index fe792e5..c5ffbc8 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2421c8() {
   vec2 res = vec2(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2421c8() {
   vec2 res = vec2(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.wgsl
index d87b538..8ef3a4d 100644
--- a/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2421c8.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_2421c8() -> vec2<f32> {
   var res : vec2<f32> = bitcast<vec2<f32>>(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2421c8();
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl
index b6015ab..474228a 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, i32>) -> vec<3, u32>
 fn bitcast_287bdf() -> vec3<u32>{
   var res: vec3<u32> = bitcast<vec3<u32>>(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_287bdf();
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.dxc.hlsl
index 59810d8..5d8b9d0 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_287bdf() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_287bdf()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.fxc.hlsl
index 59810d8..5d8b9d0 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_287bdf() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_287bdf()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.glsl
index 0b6ca4f..090a703 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 bitcast_287bdf() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_287bdf() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 bitcast_287bdf() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_287bdf() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.wgsl
index da8197e..300b355 100644
--- a/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/287bdf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_287bdf() -> vec3<u32> {
   var res : vec3<u32> = bitcast<vec3<u32>>(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_287bdf();
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl
index 8091b73..e025278 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec2<f32>>(vec4<f16>) -> vec2<f32>
 fn bitcast_2a6e58() -> vec2<f32>{
   var res: vec2<f32> = bitcast<vec2<f32>>(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2a6e58();
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.dxc.hlsl
index a1225fe..ab91e56 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2a6e58() {
   float2 res = (0.00782680511474609375f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.fxc.hlsl
index a1225fe..ab91e56 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2a6e58() {
   float2 res = (0.00782680511474609375f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.glsl
index c3f25e9..abb0595 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2a6e58() {
   vec2 res = vec2(0.00782680511474609375f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2a6e58() {
   vec2 res = vec2(0.00782680511474609375f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.wgsl
index 958bb77..ca7f676 100644
--- a/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2a6e58.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_2a6e58() -> vec2<f32> {
   var res : vec2<f32> = bitcast<vec2<f32>>(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2a6e58();
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl
index ec6fcaa..d7e8451 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn bitcast<T: vec<3, f32>>(vec<3, f32>) -> vec<3, f32>
 fn bitcast_2b05b3() -> vec3<f32>{
   var res: vec3<f32> = bitcast<vec3<f32>>(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b05b3();
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.dxc.hlsl
index e5cf38c..cadb1b5 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_2b05b3() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.fxc.hlsl
index e5cf38c..cadb1b5 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_2b05b3() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.glsl
index 103b7a3..fd9a143 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 bitcast_2b05b3() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 bitcast_2b05b3() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 bitcast_2b05b3() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 bitcast_2b05b3() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.wgsl
index d576d8f..173e5db 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b05b3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn bitcast_2b05b3() -> vec3<f32> {
   var res : vec3<f32> = bitcast<vec3<f32>>(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b05b3();
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl
index 90e66de..0250811 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, f32>) -> vec<2, u32>
 fn bitcast_2b2738() -> vec2<u32>{
   var res: vec2<u32> = bitcast<vec2<u32>>(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b2738();
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.dxc.hlsl
index 7c4e1ca..2e7abd9 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_2b2738() {
   uint2 res = (1065353216u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2b2738()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.fxc.hlsl
index 7c4e1ca..2e7abd9 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_2b2738() {
   uint2 res = (1065353216u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2b2738()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.glsl
index 208cae9..b0d870f 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_2b2738() {
   uvec2 res = uvec2(1065353216u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_2b2738() {
   uvec2 res = uvec2(1065353216u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.wgsl
index a9f8dc5..4506108 100644
--- a/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/2b2738.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_2b2738() -> vec2<u32> {
   var res : vec2<u32> = bitcast<vec2<u32>>(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b2738();
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl
index 621dbac..98481f8 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(u32) -> u32
 fn bitcast_31c080() -> u32{
   var res: u32 = bitcast<u32>(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_31c080();
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.dxc.hlsl
index 7f99f35..ee015ab 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_31c080() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_31c080()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.fxc.hlsl
index 7f99f35..ee015ab 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_31c080() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_31c080()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.glsl
index a696cdb..e973921 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_31c080() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_31c080() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.wgsl
index c21bf3f..ac34c1a 100644
--- a/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/31c080.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_31c080() -> u32 {
   var res : u32 = bitcast<u32>(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_31c080();
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl
index 97ae031..5b6f2fb 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn bitcast<T: vec<3, f32>>(vec<3, i32>) -> vec<3, f32>
 fn bitcast_332f78() -> vec3<f32>{
   var res: vec3<f32> = bitcast<vec3<f32>>(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_332f78();
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.dxc.hlsl
index 830d986..dabeb1c 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_332f78() {
   float3 res = (1.40129846e-45f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_332f78()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.fxc.hlsl
index 830d986..dabeb1c 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_332f78() {
   float3 res = (1.40129846e-45f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_332f78()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.glsl
index 16ecac3..8d697d6 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 bitcast_332f78() {
-  vec3 res = vec3(1.40129846e-45f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 bitcast_332f78() {
+  vec3 res = vec3(1.40129846e-45f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 bitcast_332f78() {
-  vec3 res = vec3(1.40129846e-45f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 bitcast_332f78() {
+  vec3 res = vec3(1.40129846e-45f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.wgsl
index a3bf4dc..ef1586f 100644
--- a/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/332f78.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn bitcast_332f78() -> vec3<f32> {
   var res : vec3<f32> = bitcast<vec3<f32>>(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_332f78();
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl
index 72c9f47..0d49edf 100644
--- a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec<4, f16>>(vec<4, f16>) -> vec<4, f16>
 fn bitcast_3e7b47() -> vec4<f16>{
   var res: vec4<f16> = bitcast<vec4<f16>>(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3e7b47();
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.dxc.hlsl
index d1832b2..94d2356 100644
--- a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_3e7b47() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.glsl
index c6d824f..397e152 100644
--- a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_3e7b47() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_3e7b47() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.wgsl
index b541341..ce458b8 100644
--- a/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/3e7b47.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_3e7b47() -> vec4<f16> {
   var res : vec4<f16> = bitcast<vec4<f16>>(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3e7b47();
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl
index 72b1c17..78be6b3 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn bitcast<T: vec<4, i32>>(vec<4, i32>) -> vec<4, i32>
 fn bitcast_3f7437() -> vec4<i32>{
   var res: vec4<i32> = bitcast<vec4<i32>>(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3f7437();
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.dxc.hlsl
index e2b1d5a..0bd1565 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_3f7437() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.fxc.hlsl
index e2b1d5a..0bd1565 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_3f7437() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.glsl
index 645e4af..2a5c1f3 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_3f7437() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_3f7437() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.wgsl
index 35391d0..a07fc9b 100644
--- a/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/3f7437.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn bitcast_3f7437() -> vec4<i32> {
   var res : vec4<i32> = bitcast<vec4<i32>>(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3f7437();
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl
index 6df5a68..146aab0 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn bitcast<T: vec<4, f32>>(vec<4, i32>) -> vec<4, f32>
 fn bitcast_3fdacd() -> vec4<f32>{
   var res: vec4<f32> = bitcast<vec4<f32>>(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3fdacd();
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.dxc.hlsl
index dbed9df..3f091ba 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_3fdacd() {
   float4 res = (1.40129846e-45f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.fxc.hlsl
index dbed9df..3f091ba 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_3fdacd() {
   float4 res = (1.40129846e-45f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.glsl
index ad46625..8e3f7e8 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_3fdacd() {
   vec4 res = vec4(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_3fdacd() {
   vec4 res = vec4(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.wgsl
index 40b1637..a6ca9aa 100644
--- a/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/3fdacd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn bitcast_3fdacd() -> vec4<f32> {
   var res : vec4<f32> = bitcast<vec4<f32>>(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3fdacd();
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl
index fecf1cf..c2976be 100644
--- a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec4<f16>>(vec2<f32>) -> vec4<f16>
 fn bitcast_429d64() -> vec4<f16>{
   var res: vec4<f16> = bitcast<vec4<f16>>(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_429d64();
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.dxc.hlsl
index 0d52e21..6069c32 100644
--- a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_429d64() {
   vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.0h), float16_t(1.875h), float16_t(0.0h), float16_t(1.875h));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.glsl
index fb7b218..501a370 100644
--- a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_429d64() {
   f16vec4 res = f16vec4(0.0hf, 1.875hf, 0.0hf, 1.875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_429d64() {
   f16vec4 res = f16vec4(0.0hf, 1.875hf, 0.0hf, 1.875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.wgsl
index 8a9e5a9..0f2c4c9 100644
--- a/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/429d64.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_429d64() -> vec4<f16> {
   var res : vec4<f16> = bitcast<vec4<f16>>(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_429d64();
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl
index 7e0cd77..a5dbb83 100644
--- a/test/tint/builtins/gen/literal/bitcast/436211.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn bitcast<T: f16>(f16) -> f16
 fn bitcast_436211() -> f16{
   var res: f16 = bitcast<f16>(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_436211();
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.dxc.hlsl
index 98f2b9f..193123f 100644
--- a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t bitcast_436211() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, bitcast_436211());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.glsl
index ca1ba68..3f62d02 100644
--- a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t bitcast_436211() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t bitcast_436211() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.wgsl
index d197cf6..b066fe3 100644
--- a/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/436211.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn bitcast_436211() -> f16 {
   var res : f16 = bitcast<f16>(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_436211();
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl
index 08c512b..06c8f37 100644
--- a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn bitcast<T: vec<3, f16>>(vec<3, f16>) -> vec<3, f16>
 fn bitcast_5081ed() -> vec3<f16>{
   var res: vec3<f16> = bitcast<vec3<f16>>(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_5081ed();
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.dxc.hlsl
index 0a1825c..fce26ab 100644
--- a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> bitcast_5081ed() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.glsl
index 8a15f4a..52f62b3 100644
--- a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 bitcast_5081ed() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 bitcast_5081ed() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.wgsl
index 66ad187..d9dc80e 100644
--- a/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/5081ed.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn bitcast_5081ed() -> vec3<f16> {
   var res : vec3<f16> = bitcast<vec3<f16>>(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_5081ed();
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl
index 60a97e6..13a1b85 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, f32>) -> vec<3, u32>
 fn bitcast_56266e() -> vec3<u32>{
   var res: vec3<u32> = bitcast<vec3<u32>>(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_56266e();
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.dxc.hlsl
index 894f1dc..e0802bd 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_56266e() {
   uint3 res = (1065353216u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_56266e()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.fxc.hlsl
index 894f1dc..e0802bd 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_56266e() {
   uint3 res = (1065353216u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_56266e()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.glsl
index 29209c2..6f2b1ff 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 bitcast_56266e() {
-  uvec3 res = uvec3(1065353216u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_56266e() {
+  uvec3 res = uvec3(1065353216u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 bitcast_56266e() {
-  uvec3 res = uvec3(1065353216u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_56266e() {
+  uvec3 res = uvec3(1065353216u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.wgsl
index 0684e3a..3728cc3 100644
--- a/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/56266e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_56266e() -> vec3<u32> {
   var res : vec3<u32> = bitcast<vec3<u32>>(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_56266e();
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl
index 8d2565a..fb43cab 100644
--- a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec2<f16>>(u32) -> vec2<f16>
 fn bitcast_66e93d() -> vec2<f16>{
   var res: vec2<f16> = bitcast<vec2<f16>>(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_66e93d();
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.dxc.hlsl
index 179a1b9..fd97fe1 100644
--- a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_66e93d() {
   vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.00000005960464477539h), float16_t(0.0h));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.glsl
index 30f854a..1255297 100644
--- a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_66e93d() {
   f16vec2 res = f16vec2(0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_66e93d() {
   f16vec2 res = f16vec2(0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.wgsl
index 09be24a..5a8fbe3 100644
--- a/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/66e93d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_66e93d() -> vec2<f16> {
   var res : vec2<f16> = bitcast<vec2<f16>>(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_66e93d();
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl
index 3dfc08c..aa5e824 100644
--- a/test/tint/builtins/gen/literal/bitcast/674557.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec2<f16>>(i32) -> vec2<f16>
 fn bitcast_674557() -> vec2<f16>{
   var res: vec2<f16> = bitcast<vec2<f16>>(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_674557();
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.dxc.hlsl
index 47d0542..8bd1719 100644
--- a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_674557() {
   vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.00000005960464477539h), float16_t(0.0h));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.glsl
index 71790a0..5433442 100644
--- a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_674557() {
   f16vec2 res = f16vec2(0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_674557() {
   f16vec2 res = f16vec2(0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.wgsl
index d6dab1e..f1409ba 100644
--- a/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/674557.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_674557() -> vec2<f16> {
   var res : vec2<f16> = bitcast<vec2<f16>>(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_674557();
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl
index f984d03..fcf896f 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(vec2<f16>) -> i32
 fn bitcast_6ac6f9() -> i32{
   var res: i32 = bitcast<i32>(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6ac6f9();
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.dxc.hlsl
index 7394892..9bfb48a 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_6ac6f9() {
   int res = 1006648320;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.fxc.hlsl
index 7394892..9bfb48a 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_6ac6f9() {
   int res = 1006648320;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.glsl
index 527f1df..7a92b1f 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_6ac6f9() {
   int res = 1006648320;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_6ac6f9() {
   int res = 1006648320;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.wgsl
index 6898c94..29c7340 100644
--- a/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/6ac6f9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_6ac6f9() -> i32 {
   var res : i32 = bitcast<i32>(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6ac6f9();
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl
index b9abcbd..e522c38 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn bitcast<T: vec<4, i32>>(vec<4, f32>) -> vec<4, i32>
 fn bitcast_6de2bd() -> vec4<i32>{
   var res: vec4<i32> = bitcast<vec4<i32>>(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6de2bd();
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.dxc.hlsl
index 584c653..f1eb35d 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_6de2bd() {
   int4 res = (1065353216).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.fxc.hlsl
index 584c653..f1eb35d 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_6de2bd() {
   int4 res = (1065353216).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.glsl
index 3f54cc3..514e457 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_6de2bd() {
   ivec4 res = ivec4(1065353216);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_6de2bd() {
   ivec4 res = ivec4(1065353216);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.wgsl
index a59d4c8..ac26362 100644
--- a/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/6de2bd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn bitcast_6de2bd() -> vec4<i32> {
   var res : vec4<i32> = bitcast<vec4<i32>>(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6de2bd();
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl
index ffd7e50..3576b6b 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, ia>) -> vec<2, u32>
 fn bitcast_70b121() -> vec2<u32>{
   var res: vec2<u32> = bitcast<vec2<u32>>(vec2(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_70b121();
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.dxc.hlsl
index 39403b8..58bcc83 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_70b121() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_70b121()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.fxc.hlsl
index 39403b8..58bcc83 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_70b121() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_70b121()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.glsl
index 4ff5244..2ff4a4c 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_70b121() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_70b121() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.wgsl
index 939c949..696dac4 100644
--- a/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/70b121.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_70b121() -> vec2<u32> {
   var res : vec2<u32> = bitcast<vec2<u32>>(vec2(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_70b121();
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl
index 9ea012b..284d0b3 100644
--- a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec4<f16>>(vec2<i32>) -> vec4<f16>
 fn bitcast_71c92a() -> vec4<f16>{
   var res: vec4<f16> = bitcast<vec4<f16>>(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_71c92a();
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.dxc.hlsl
index c482564..ee9c358 100644
--- a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_71c92a() {
   vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.00000005960464477539h), float16_t(0.0h), float16_t(0.00000005960464477539h), float16_t(0.0h));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.glsl
index 36735aa..45e79ed 100644
--- a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_71c92a() {
   f16vec4 res = f16vec4(0.00000005960464477539hf, 0.0hf, 0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_71c92a() {
   f16vec4 res = f16vec4(0.00000005960464477539hf, 0.0hf, 0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.wgsl
index 429eb69..65e2483 100644
--- a/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/71c92a.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_71c92a() -> vec4<f16> {
   var res : vec4<f16> = bitcast<vec4<f16>>(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_71c92a();
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl
index dc48bc9..4f32357 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn bitcast<T: vec<4, f32>>(vec<4, f32>) -> vec<4, f32>
 fn bitcast_745b27() -> vec4<f32>{
   var res: vec4<f32> = bitcast<vec4<f32>>(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_745b27();
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.dxc.hlsl
index 28e1b10..5e7095f 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_745b27() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_745b27()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.fxc.hlsl
index 28e1b10..5e7095f 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_745b27() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_745b27()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.glsl
index eb5de31..6005f46 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_745b27() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_745b27() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.wgsl
index 4eaa72c..2711a13 100644
--- a/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/745b27.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn bitcast_745b27() -> vec4<f32> {
   var res : vec4<f32> = bitcast<vec4<f32>>(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_745b27();
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl
index e89b780..e4c80c35 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(i32) -> i32
 fn bitcast_7e67cc() -> i32{
   var res: i32 = bitcast<i32>(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7e67cc();
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.dxc.hlsl
index 3a882ec..96555d0 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_7e67cc() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.fxc.hlsl
index 3a882ec..96555d0 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_7e67cc() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.glsl
index 5453771..714b729 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_7e67cc() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_7e67cc() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.wgsl
index 8ce1d12..aeaa5da 100644
--- a/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/7e67cc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_7e67cc() -> i32 {
   var res : i32 = bitcast<i32>(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7e67cc();
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl
index 7a94d13..24e5907 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, u32>) -> vec<4, u32>
 fn bitcast_7ffa9c() -> vec4<u32>{
   var res: vec4<u32> = bitcast<vec4<u32>>(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7ffa9c();
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.dxc.hlsl
index 9218955..4bff44f 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_7ffa9c() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_7ffa9c()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.fxc.hlsl
index 9218955..4bff44f 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_7ffa9c() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_7ffa9c()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.glsl
index b6a5bef..a9e02cd 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_7ffa9c() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_7ffa9c() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.wgsl
index ffe8733..e0f70ea 100644
--- a/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/7ffa9c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_7ffa9c() -> vec4<u32> {
   var res : vec4<u32> = bitcast<vec4<u32>>(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7ffa9c();
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl
index 4a2333d..239c85c 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec2<u32>>(vec4<f16>) -> vec2<u32>
 fn bitcast_81c5f5() -> vec2<u32>{
   var res: vec2<u32> = bitcast<vec2<u32>>(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_81c5f5();
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.dxc.hlsl
index 707ce91..9e96783 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_81c5f5() {
   uint2 res = (1006648320u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_81c5f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.fxc.hlsl
index 707ce91..9e96783 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_81c5f5() {
   uint2 res = (1006648320u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_81c5f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.glsl
index 4a9f02b..dcedab6 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_81c5f5() {
   uvec2 res = uvec2(1006648320u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_81c5f5() {
   uvec2 res = uvec2(1006648320u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.wgsl
index d9546b5..d45634f 100644
--- a/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/81c5f5.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_81c5f5() -> vec2<u32> {
   var res : vec2<u32> = bitcast<vec2<u32>>(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_81c5f5();
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl
index 60d0e2c..d11eadc 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, u32>) -> vec<3, u32>
 fn bitcast_8318a8() -> vec3<u32>{
   var res: vec3<u32> = bitcast<vec3<u32>>(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8318a8();
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.dxc.hlsl
index 5a745bd..459555a 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_8318a8() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_8318a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.fxc.hlsl
index 5a745bd..459555a 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_8318a8() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_8318a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.glsl
index 3bbd1c4..816f44e 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 bitcast_8318a8() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_8318a8() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 bitcast_8318a8() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_8318a8() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.wgsl
index 836e5c4..7d2373f 100644
--- a/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/8318a8.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_8318a8() -> vec3<u32> {
   var res : vec3<u32> = bitcast<vec3<u32>>(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8318a8();
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl
index 9066fe9..843628f 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(ia) -> u32
 fn bitcast_879dc9() -> u32{
   var res: u32 = bitcast<u32>(1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_879dc9();
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.dxc.hlsl
index b0eb7e0..24301f8 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_879dc9()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.fxc.hlsl
index b0eb7e0..24301f8 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_879dc9()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.glsl
index 01227a1..6356623 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.wgsl
index c41564a..229d4fe 100644
--- a/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/879dc9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_879dc9() -> u32 {
   var res : u32 = bitcast<u32>(1);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_879dc9();
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl
index 83bf6c2..5adb96f 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec<2, i32>>(vec<2, f32>) -> vec<2, i32>
 fn bitcast_899e50() -> vec2<i32>{
   var res: vec2<i32> = bitcast<vec2<i32>>(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_899e50();
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.dxc.hlsl
index 8c2ca2a..d9b35f9 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_899e50() {
   int2 res = (1065353216).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_899e50()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.fxc.hlsl
index 8c2ca2a..d9b35f9 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_899e50() {
   int2 res = (1065353216).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_899e50()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.glsl
index 7b1c90e..19203b5 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_899e50() {
   ivec2 res = ivec2(1065353216);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_899e50() {
   ivec2 res = ivec2(1065353216);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.wgsl
index ce7c4c6..5f83dc1 100644
--- a/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/899e50.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_899e50() -> vec2<i32> {
   var res : vec2<i32> = bitcast<vec2<i32>>(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_899e50();
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl
index 5d39b4e..ac6dba4 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, f32>) -> vec<4, u32>
 fn bitcast_8d184c() -> vec4<u32>{
   var res: vec4<u32> = bitcast<vec4<u32>>(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8d184c();
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.dxc.hlsl
index 1558a9e..b03c29f 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_8d184c() {
   uint4 res = (1065353216u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_8d184c()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.fxc.hlsl
index 1558a9e..b03c29f 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_8d184c() {
   uint4 res = (1065353216u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_8d184c()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.glsl
index 5783038..70c2d0c 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_8d184c() {
   uvec4 res = uvec4(1065353216u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_8d184c() {
   uvec4 res = uvec4(1065353216u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.wgsl
index a696be1..cdf1c12 100644
--- a/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/8d184c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_8d184c() -> vec4<u32> {
   var res : vec4<u32> = bitcast<vec4<u32>>(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8d184c();
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl
index 0326298..5f40912 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec<2, f32>>(vec<2, f32>) -> vec<2, f32>
 fn bitcast_9bcf71() -> vec2<f32>{
   var res: vec2<f32> = bitcast<vec2<f32>>(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9bcf71();
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.dxc.hlsl
index d6bc03e..e4d28f2 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_9bcf71() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.fxc.hlsl
index d6bc03e..e4d28f2 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_9bcf71() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.glsl
index 7ed267c..dea3d34 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_9bcf71() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_9bcf71() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.wgsl
index a4b4c28..c3ba3d2 100644
--- a/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/9bcf71.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_9bcf71() -> vec2<f32> {
   var res : vec2<f32> = bitcast<vec2<f32>>(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9bcf71();
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl
index 1dc7aff..082d4bd 100644
--- a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec2<f16>>(f32) -> vec2<f16>
 fn bitcast_9ca42c() -> vec2<f16>{
   var res: vec2<f16> = bitcast<vec2<f16>>(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9ca42c();
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.dxc.hlsl
index 061edbb..c731e40 100644
--- a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_9ca42c() {
   vector<float16_t, 2> res = vector<float16_t, 2>(float16_t(0.0h), float16_t(1.875h));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.glsl
index e8f2ab7..9f513c5 100644
--- a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_9ca42c() {
   f16vec2 res = f16vec2(0.0hf, 1.875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_9ca42c() {
   f16vec2 res = f16vec2(0.0hf, 1.875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.wgsl
index 1787f3b..1254876 100644
--- a/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/9ca42c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_9ca42c() -> vec2<f16> {
   var res : vec2<f16> = bitcast<vec2<f16>>(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9ca42c();
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl
index ee1355a..d92c0aa 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn bitcast<T: vec<3, i32>>(vec<3, i32>) -> vec<3, i32>
 fn bitcast_9eee21() -> vec3<i32>{
   var res: vec3<i32> = bitcast<vec3<i32>>(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9eee21();
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.dxc.hlsl
index 9e93f72..6b0a6f7 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_9eee21() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.fxc.hlsl
index 9e93f72..6b0a6f7 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_9eee21() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.glsl
index bb8eed7..cf90deb 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 bitcast_9eee21() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 bitcast_9eee21() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 bitcast_9eee21() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 bitcast_9eee21() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.wgsl
index c060149..82b1143 100644
--- a/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/9eee21.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn bitcast_9eee21() -> vec3<i32> {
   var res : vec3<i32> = bitcast<vec3<i32>>(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9eee21();
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl
index f8aef00..4464e11 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn bitcast<T: vec<4, f32>>(vec<4, u32>) -> vec<4, f32>
 fn bitcast_a4b290() -> vec4<f32>{
   var res: vec4<f32> = bitcast<vec4<f32>>(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a4b290();
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.dxc.hlsl
index 0a0b92b..60f078e 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_a4b290() {
   float4 res = (1.40129846e-45f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.fxc.hlsl
index 0a0b92b..60f078e 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_a4b290() {
   float4 res = (1.40129846e-45f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.glsl
index 6841802..fdec393 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_a4b290() {
   vec4 res = vec4(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_a4b290() {
   vec4 res = vec4(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.wgsl
index 38f216e..f084dc6 100644
--- a/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a4b290.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn bitcast_a4b290() -> vec4<f32> {
   var res : vec4<f32> = bitcast<vec4<f32>>(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a4b290();
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl
index 8b99cdb..9cbb19e 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(vec2<f16>) -> u32
 fn bitcast_a58b50() -> u32{
   var res: u32 = bitcast<u32>(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a58b50();
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.dxc.hlsl
index fa0afdf..1d7c519 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_a58b50() {
   uint res = 1006648320u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_a58b50()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.fxc.hlsl
index fa0afdf..1d7c519 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_a58b50() {
   uint res = 1006648320u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_a58b50()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.glsl
index cb59f4a4..a7ab9c1 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_a58b50() {
   uint res = 1006648320u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_a58b50() {
   uint res = 1006648320u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.wgsl
index f998c1b..12abdca 100644
--- a/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a58b50.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_a58b50() -> u32 {
   var res : u32 = bitcast<u32>(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a58b50();
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl
index 3335447..cad592f 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn bitcast<T: vec<4, i32>>(vec<4, u32>) -> vec<4, i32>
 fn bitcast_a5c539() -> vec4<i32>{
   var res: vec4<i32> = bitcast<vec4<i32>>(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a5c539();
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.dxc.hlsl
index bea3010..ba546c7 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_a5c539() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.fxc.hlsl
index bea3010..ba546c7 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_a5c539() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.glsl
index 4a53f4e..ff50763 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_a5c539() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_a5c539() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.wgsl
index fe3a627..fc43ae2 100644
--- a/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a5c539.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn bitcast_a5c539() -> vec4<i32> {
   var res : vec4<i32> = bitcast<vec4<i32>>(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a5c539();
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl
index 02e40d9..a07d6e3 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, i32>) -> vec<4, u32>
 fn bitcast_a8c93f() -> vec4<u32>{
   var res: vec4<u32> = bitcast<vec4<u32>>(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8c93f();
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.dxc.hlsl
index 5c38abd..69a214a 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_a8c93f() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a8c93f()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.fxc.hlsl
index 5c38abd..69a214a 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_a8c93f() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a8c93f()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.glsl
index d7fc8ba..c4c75be 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_a8c93f() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_a8c93f() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.wgsl
index bab5530..22a9247 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8c93f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_a8c93f() -> vec4<u32> {
   var res : vec4<u32> = bitcast<vec4<u32>>(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8c93f();
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl
index 17bae1b..bd12df0 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn bitcast<T: vec<3, i32>>(vec<3, u32>) -> vec<3, i32>
 fn bitcast_a8ea1b() -> vec3<i32>{
   var res: vec3<i32> = bitcast<vec3<i32>>(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8ea1b();
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.dxc.hlsl
index 1544fd7..8cf2981 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_a8ea1b() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.fxc.hlsl
index 1544fd7..8cf2981 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_a8ea1b() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.glsl
index 12857e2..8f64497 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 bitcast_a8ea1b() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 bitcast_a8ea1b() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 bitcast_a8ea1b() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 bitcast_a8ea1b() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.wgsl
index 6eeedb8..3f2eb67 100644
--- a/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/a8ea1b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn bitcast_a8ea1b() -> vec3<i32> {
   var res : vec3<i32> = bitcast<vec3<i32>>(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8ea1b();
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl
index 24420b7..8090f30 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(f32) -> f32
 fn bitcast_ac09d0() -> f32{
   var res: f32 = bitcast<f32>(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ac09d0();
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.dxc.hlsl
index ef39019..1979c44 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ac09d0() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.fxc.hlsl
index ef39019..1979c44 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ac09d0() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.glsl
index 227feb6..4d17ad2 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ac09d0() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ac09d0() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.wgsl
index f645216..0966176 100644
--- a/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/ac09d0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_ac09d0() -> f32 {
   var res : f32 = bitcast<f32>(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ac09d0();
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl
index 033955f..dbdd772 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(u32) -> f32
 fn bitcast_ad4b05() -> f32{
   var res: f32 = bitcast<f32>(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ad4b05();
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.dxc.hlsl
index c3eeb49..279c60b 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ad4b05() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.fxc.hlsl
index c3eeb49..279c60b 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ad4b05() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.glsl
index 4f8f765..f7f30b8 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ad4b05() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ad4b05() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.wgsl
index 011b7ab..945823e 100644
--- a/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/ad4b05.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_ad4b05() -> f32 {
   var res : f32 = bitcast<f32>(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ad4b05();
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl
index 2cc9cd3..e90dfdc 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn bitcast<T: vec<3, i32>>(vec<3, f32>) -> vec<3, i32>
 fn bitcast_b28cbd() -> vec3<i32>{
   var res: vec3<i32> = bitcast<vec3<i32>>(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b28cbd();
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.dxc.hlsl
index 9ae357e..36b4726 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_b28cbd() {
   int3 res = (1065353216).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.fxc.hlsl
index 9ae357e..36b4726 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_b28cbd() {
   int3 res = (1065353216).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.glsl
index e960340..ce20279 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 bitcast_b28cbd() {
-  ivec3 res = ivec3(1065353216);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 bitcast_b28cbd() {
+  ivec3 res = ivec3(1065353216);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 bitcast_b28cbd() {
-  ivec3 res = ivec3(1065353216);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 bitcast_b28cbd() {
+  ivec3 res = ivec3(1065353216);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.wgsl
index 01f8245..910ea17 100644
--- a/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/b28cbd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn bitcast_b28cbd() -> vec3<i32> {
   var res : vec3<i32> = bitcast<vec3<i32>>(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b28cbd();
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl
index fa38a0e..281b618 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec<2, f32>>(vec<2, i32>) -> vec<2, f32>
 fn bitcast_b77573() -> vec2<f32>{
   var res: vec2<f32> = bitcast<vec2<f32>>(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b77573();
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.dxc.hlsl
index 26a013f..8cf2c2c 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_b77573() {
   float2 res = (1.40129846e-45f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_b77573()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.fxc.hlsl
index 26a013f..8cf2c2c 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_b77573() {
   float2 res = (1.40129846e-45f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_b77573()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.glsl
index e6744a6..63cd5f6 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_b77573() {
   vec2 res = vec2(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_b77573() {
   vec2 res = vec2(1.40129846e-45f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.wgsl
index 19075b0..033763d 100644
--- a/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/b77573.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_b77573() -> vec2<f32> {
   var res : vec2<f32> = bitcast<vec2<f32>>(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b77573();
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl
index 595f9e9..2a9ec85 100644
--- a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec4<f16>>(vec2<u32>) -> vec4<f16>
 fn bitcast_bc3994() -> vec4<f16>{
   var res: vec4<f16> = bitcast<vec4<f16>>(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_bc3994();
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.dxc.hlsl
index d098fed..d92c961 100644
--- a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_bc3994() {
   vector<float16_t, 4> res = vector<float16_t, 4>(float16_t(0.00000005960464477539h), float16_t(0.0h), float16_t(0.00000005960464477539h), float16_t(0.0h));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.glsl
index 017473a..4def1d9 100644
--- a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_bc3994() {
   f16vec4 res = f16vec4(0.00000005960464477539hf, 0.0hf, 0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_bc3994() {
   f16vec4 res = f16vec4(0.00000005960464477539hf, 0.0hf, 0.00000005960464477539hf, 0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.wgsl
index 42c77cb..8e5db4f 100644
--- a/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/bc3994.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_bc3994() -> vec4<f16> {
   var res : vec4<f16> = bitcast<vec4<f16>>(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_bc3994();
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl
index 77b7c9d..bb6cb55 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec<2, i32>>(vec<2, u32>) -> vec<2, i32>
 fn bitcast_c69aaf() -> vec2<i32>{
   var res: vec2<i32> = bitcast<vec2<i32>>(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_c69aaf();
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.dxc.hlsl
index d57c0a9..35a1bdb 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_c69aaf() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.fxc.hlsl
index d57c0a9..35a1bdb 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_c69aaf() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.glsl
index 8ed97e2..572b630 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_c69aaf() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_c69aaf() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.wgsl
index b6fc491..a629d7a 100644
--- a/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/c69aaf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_c69aaf() -> vec2<i32> {
   var res : vec2<i32> = bitcast<vec2<i32>>(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_c69aaf();
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl
index ac728b4..cdfbc64 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(i32) -> f32
 fn bitcast_ca5c3f() -> f32{
   var res: f32 = bitcast<f32>(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ca5c3f();
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.dxc.hlsl
index 69b7873..9a1bc0f 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ca5c3f() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.fxc.hlsl
index 69b7873..9a1bc0f 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ca5c3f() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.glsl
index 9951344..651e5c4 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ca5c3f() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ca5c3f() {
   float res = 1.40129846e-45f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.wgsl
index 276300a..9589126 100644
--- a/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/ca5c3f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_ca5c3f() -> f32 {
   var res : f32 = bitcast<f32>(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ca5c3f();
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl
index 4bf9178..b83ad4e 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec<2, i32>>(vec<2, i32>) -> vec<2, i32>
 fn bitcast_cc7aa7() -> vec2<i32>{
   var res: vec2<i32> = bitcast<vec2<i32>>(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_cc7aa7();
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.dxc.hlsl
index 44ddf7c..919027c 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_cc7aa7() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.fxc.hlsl
index 44ddf7c..919027c 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_cc7aa7() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.glsl
index 7f33025..0b16df8 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_cc7aa7() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_cc7aa7() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.wgsl
index 7ff233c..ebce80c 100644
--- a/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/cc7aa7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_cc7aa7() -> vec2<i32> {
   var res : vec2<i32> = bitcast<vec2<i32>>(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_cc7aa7();
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl
index 09a96d7..b53bc04 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, u32>) -> vec<2, u32>
 fn bitcast_d29765() -> vec2<u32>{
   var res: vec2<u32> = bitcast<vec2<u32>>(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_d29765();
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.dxc.hlsl
index ef805d7..9cecb65 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_d29765() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_d29765()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.fxc.hlsl
index ef805d7..9cecb65 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_d29765() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_d29765()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.glsl
index 40cb99a..aaf7ad8 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_d29765() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_d29765() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.wgsl
index d854d61..18624bc 100644
--- a/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/d29765.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_d29765() -> vec2<u32> {
   var res : vec2<u32> = bitcast<vec2<u32>>(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_d29765();
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl
index 744c8f7..759390c 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(i32) -> u32
 fn bitcast_dce842() -> u32{
   var res: u32 = bitcast<u32>(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_dce842();
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.dxc.hlsl
index f93d874..31c15ad 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_dce842() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_dce842()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.fxc.hlsl
index f93d874..31c15ad 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_dce842() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_dce842()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.glsl
index b33bef2..69e8cf4 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_dce842() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_dce842() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.wgsl
index 494816b..f55fc79 100644
--- a/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/dce842.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_dce842() -> u32 {
   var res : u32 = bitcast<u32>(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_dce842();
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl
index 68ff23c..e29ff79 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(u32) -> i32
 fn bitcast_e61c57() -> i32{
   var res: i32 = bitcast<i32>(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e61c57();
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.dxc.hlsl
index eab5a25..e0fb49a 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_e61c57() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e61c57()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.fxc.hlsl
index eab5a25..e0fb49a 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_e61c57() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e61c57()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.glsl
index df02635..5e19d68 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_e61c57() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_e61c57() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.wgsl
index 6b4878a..d335ef3 100644
--- a/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/e61c57.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_e61c57() -> i32 {
   var res : i32 = bitcast<i32>(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e61c57();
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl
index 0e3d4b8..4a7db63 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(f32) -> u32
 fn bitcast_e6c18f() -> u32{
   var res: u32 = bitcast<u32>(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e6c18f();
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.dxc.hlsl
index 15073a5..2220f19 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_e6c18f() {
   uint res = 1065353216u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e6c18f()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.fxc.hlsl
index 15073a5..2220f19 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_e6c18f() {
   uint res = 1065353216u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e6c18f()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.glsl
index e67eddc..cf0bb88 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_e6c18f() {
   uint res = 1065353216u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_e6c18f() {
   uint res = 1065353216u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.wgsl
index 82b5909..e754893 100644
--- a/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/e6c18f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_e6c18f() -> u32 {
   var res : u32 = bitcast<u32>(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e6c18f();
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl
index 193fec4..0647172 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, ia>) -> vec<3, u32>
 fn bitcast_f756cd() -> vec3<u32>{
   var res: vec3<u32> = bitcast<vec3<u32>>(vec3(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_f756cd();
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.dxc.hlsl
index dc96a40..d855738 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_f756cd() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_f756cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.fxc.hlsl
index dc96a40..d855738 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_f756cd() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_f756cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.glsl
index b618a40..256dd0d 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 bitcast_f756cd() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_f756cd() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 bitcast_f756cd() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_f756cd() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.wgsl
index 68c3c6e..c97e1db 100644
--- a/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/bitcast/f756cd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_f756cd() -> vec3<u32> {
   var res : vec3<u32> = bitcast<vec3<u32>>(vec3(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_f756cd();
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl
index f58a529..2af7730 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn ceil(vec<3, f16>) -> vec<3, f16>
 fn ceil_09bf52() -> vec3<f16>{
   var res: vec3<f16> = ceil(vec3<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_09bf52();
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.dxc.hlsl
index 7682ac8..6b9d3c9 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> ceil_09bf52() {
   vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.glsl
index e5dae72..2dd2a91 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ceil_09bf52() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ceil_09bf52() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.wgsl
index 9c80afb..23a5e23 100644
--- a/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/09bf52.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn ceil_09bf52() -> vec3<f16> {
   var res : vec3<f16> = ceil(vec3<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_09bf52();
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl
index ae73a9d..d6d44ae 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn ceil(vec<2, f16>) -> vec<2, f16>
 fn ceil_18c240() -> vec2<f16>{
   var res: vec2<f16> = ceil(vec2<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_18c240();
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.dxc.hlsl
index 2114764..c2ed780 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> ceil_18c240() {
   vector<float16_t, 2> res = (float16_t(2.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.glsl
index d6c642c..1227cde 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ceil_18c240() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ceil_18c240() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.wgsl
index b1ae861..cc861ea 100644
--- a/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/18c240.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn ceil_18c240() -> vec2<f16> {
   var res : vec2<f16> = ceil(vec2<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_18c240();
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl
index db25c0d..3f91c86 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn ceil(vec<3, f32>) -> vec<3, f32>
 fn ceil_34064b() -> vec3<f32>{
   var res: vec3<f32> = ceil(vec3<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_34064b();
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.dxc.hlsl
index 3b08804..56e1b3a 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ceil_34064b() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ceil_34064b()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.fxc.hlsl
index 3b08804..56e1b3a 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ceil_34064b() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ceil_34064b()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.glsl
index 0ce0b89..ae9aa8c 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 ceil_34064b() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 ceil_34064b() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 ceil_34064b() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 ceil_34064b() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.wgsl
index 70991f7..77c7abf 100644
--- a/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/34064b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn ceil_34064b() -> vec3<f32> {
   var res : vec3<f32> = ceil(vec3<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_34064b();
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl
index 024422a..aa9c0aa 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn ceil(vec<4, f16>) -> vec<4, f16>
 fn ceil_4bca2a() -> vec4<f16>{
   var res: vec4<f16> = ceil(vec4<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_4bca2a();
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.dxc.hlsl
index d104d43..b196375 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> ceil_4bca2a() {
   vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.glsl
index 93867be..58a8792 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ceil_4bca2a() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ceil_4bca2a() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.wgsl
index 5cc2b99..c92d1b6 100644
--- a/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/4bca2a.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn ceil_4bca2a() -> vec4<f16> {
   var res : vec4<f16> = ceil(vec4<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_4bca2a();
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl
index 84191bd..4d62e9c 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn ceil(f32) -> f32
 fn ceil_678655() -> f32{
   var res: f32 = ceil(1.5f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_678655();
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.dxc.hlsl
index a07cf5f..cc09095 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ceil_678655() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ceil_678655()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.fxc.hlsl
index a07cf5f..cc09095 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ceil_678655() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ceil_678655()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.glsl
index ed62c6f..f526c71 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ceil_678655() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ceil_678655() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.wgsl
index d26b250..e491cd0 100644
--- a/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/678655.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn ceil_678655() -> f32 {
   var res : f32 = ceil(1.5f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_678655();
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl
index dd55a73..9b42ee2 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn ceil(vec<2, f32>) -> vec<2, f32>
 fn ceil_96f597() -> vec2<f32>{
   var res: vec2<f32> = ceil(vec2<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_96f597();
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.dxc.hlsl
index 5aec240..b244847 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ceil_96f597() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ceil_96f597()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.fxc.hlsl
index 5aec240..b244847 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ceil_96f597() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ceil_96f597()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.glsl
index ccc6c69..f22963c 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ceil_96f597() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ceil_96f597() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.wgsl
index 800b990..51521fa 100644
--- a/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/96f597.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn ceil_96f597() -> vec2<f32> {
   var res : vec2<f32> = ceil(vec2<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_96f597();
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl
index b4bcccf..42f039d 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn ceil(vec<4, f32>) -> vec<4, f32>
 fn ceil_b74c16() -> vec4<f32>{
   var res: vec4<f32> = ceil(vec4<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_b74c16();
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.dxc.hlsl
index 5044008..4215227 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ceil_b74c16() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ceil_b74c16()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.fxc.hlsl
index 5044008..4215227 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ceil_b74c16() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ceil_b74c16()));
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.glsl
index 7ed5eb7..439ab3f 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ceil_b74c16() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ceil_b74c16() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.wgsl
index 39fedbd..d1d1ff4 100644
--- a/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/b74c16.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn ceil_b74c16() -> vec4<f32> {
   var res : vec4<f32> = ceil(vec4<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_b74c16();
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl
index 48f4ae0..498b957 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn ceil(f16) -> f16
 fn ceil_f3f889() -> f16{
   var res: f16 = ceil(1.5h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_f3f889();
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.dxc.hlsl
index 78cb0a3..4bc4580 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t ceil_f3f889() {
   float16_t res = float16_t(2.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, ceil_f3f889());
   return;
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.glsl
index 3191f05..7be2bf2 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ceil_f3f889() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ceil_f3f889() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.wgsl
index ba742aa..e1998a8 100644
--- a/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ceil/f3f889.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn ceil_f3f889() -> f16 {
   var res : f16 = ceil(1.5h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_f3f889();
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl
index 8e93d94..8f1c679 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn clamp(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn clamp_0acf8f() -> vec2<f32>{
   var res: vec2<f32> = clamp(vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_0acf8f();
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.dxc.hlsl
index c423cf3..0a8bb4f 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 clamp_0acf8f() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.fxc.hlsl
index c423cf3..0a8bb4f 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 clamp_0acf8f() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.glsl
index 9662f2a..ad1e356 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 clamp_0acf8f() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 clamp_0acf8f() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.wgsl
index c8c0260..7b1eb1a 100644
--- a/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/0acf8f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn clamp_0acf8f() -> vec2<f32> {
   var res : vec2<f32> = clamp(vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_0acf8f();
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl
index 5cd74a1..3506a60 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn clamp(vec<4, i32>, vec<4, i32>, vec<4, i32>) -> vec<4, i32>
 fn clamp_1a32e3() -> vec4<i32>{
   var res: vec4<i32> = clamp(vec4<i32>(1i), vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_1a32e3();
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.dxc.hlsl
index 6648e3b..1b0d4fb 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 clamp_1a32e3() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.fxc.hlsl
index 6648e3b..1b0d4fb 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 clamp_1a32e3() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.glsl
index 5ee7d18..6eb88f4 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 clamp_1a32e3() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 clamp_1a32e3() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.wgsl
index 5ee68c9..be75266 100644
--- a/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/1a32e3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn clamp_1a32e3() -> vec4<i32> {
   var res : vec4<i32> = clamp(vec4<i32>(1i), vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_1a32e3();
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl
index 3d72284..0b0f11a 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn clamp(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn clamp_235b29() -> vec2<f16>{
   var res: vec2<f16> = clamp(vec2<f16>(1.h), vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_235b29();
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.dxc.hlsl
index 09b917d..42a04d6 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> clamp_235b29() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.glsl
index 8d15bdf..f7cf641 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 clamp_235b29() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 clamp_235b29() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.wgsl
index d6af4cf..f508471 100644
--- a/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/235b29.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn clamp_235b29() -> vec2<f16> {
   var res : vec2<f16> = clamp(vec2<f16>(1.0h), vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_235b29();
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl
index 4a57470..e50c7ff 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn clamp(f32, f32, f32) -> f32
 fn clamp_2bd567() -> f32{
   var res: f32 = clamp(1.f, 1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bd567();
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.dxc.hlsl
index 9ac4a67..fa11286 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float clamp_2bd567() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_2bd567()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.fxc.hlsl
index 9ac4a67..fa11286 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float clamp_2bd567() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_2bd567()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.glsl
index cc4585c..d225033 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float clamp_2bd567() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float clamp_2bd567() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.wgsl
index 2f27bf0..703a416 100644
--- a/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/2bd567.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn clamp_2bd567() -> f32 {
   var res : f32 = clamp(1.0f, 1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bd567();
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl
index 593f5ef..7793ddc 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn clamp(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn clamp_2bde41() -> vec4<f32>{
   var res: vec4<f32> = clamp(vec4<f32>(1.f), vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bde41();
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.dxc.hlsl
index 3209e31..4042ca1 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 clamp_2bde41() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_2bde41()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.fxc.hlsl
index 3209e31..4042ca1 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 clamp_2bde41() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_2bde41()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.glsl
index b892f05..4553b8b 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 clamp_2bde41() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 clamp_2bde41() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.wgsl
index 18169e7..4e6dde1 100644
--- a/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/2bde41.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn clamp_2bde41() -> vec4<f32> {
   var res : vec4<f32> = clamp(vec4<f32>(1.0f), vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bde41();
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl
index 56c8ddf..a93de7d 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn clamp(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn clamp_2c251b() -> vec4<f16>{
   var res: vec4<f16> = clamp(vec4<f16>(1.h), vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2c251b();
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.dxc.hlsl
index 4c9c28e..f933ce3 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> clamp_2c251b() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.glsl
index ea9d7d6..6bb1830 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 clamp_2c251b() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 clamp_2c251b() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.wgsl
index 2244c5d..04b6e15 100644
--- a/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/2c251b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn clamp_2c251b() -> vec4<f16> {
   var res : vec4<f16> = clamp(vec4<f16>(1.0h), vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2c251b();
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl
index 592f481..427f89e 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn clamp(vec<3, u32>, vec<3, u32>, vec<3, u32>) -> vec<3, u32>
 fn clamp_548fc7() -> vec3<u32>{
   var res: vec3<u32> = clamp(vec3<u32>(1u), vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_548fc7();
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.dxc.hlsl
index adf9f1a..c3698bb 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 clamp_548fc7() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_548fc7()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.fxc.hlsl
index adf9f1a..c3698bb 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 clamp_548fc7() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_548fc7()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.glsl
index ee53ec2..ab42665 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 clamp_548fc7() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 clamp_548fc7() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 clamp_548fc7() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 clamp_548fc7() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.wgsl
index 77825b4..7583546 100644
--- a/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/548fc7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn clamp_548fc7() -> vec3<u32> {
   var res : vec3<u32> = clamp(vec3<u32>(1u), vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_548fc7();
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl
index 5afff79..7aeeb0d 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn clamp(f16, f16, f16) -> f16
 fn clamp_553ffb() -> f16{
   var res: f16 = clamp(1.h, 1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_553ffb();
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.dxc.hlsl
index 02fd099..84c431b 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t clamp_553ffb() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, clamp_553ffb());
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.glsl
index 59e5bb3..42b67b7 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t clamp_553ffb() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t clamp_553ffb() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.wgsl
index 136bbdf..ce23e25 100644
--- a/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/553ffb.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn clamp_553ffb() -> f16 {
   var res : f16 = clamp(1.0h, 1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_553ffb();
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl
index 97bad2d..29b7554 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn clamp(vec<3, i32>, vec<3, i32>, vec<3, i32>) -> vec<3, i32>
 fn clamp_5f0819() -> vec3<i32>{
   var res: vec3<i32> = clamp(vec3<i32>(1i), vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_5f0819();
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.dxc.hlsl
index 52e1a53..d1282a5 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 clamp_5f0819() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_5f0819()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.fxc.hlsl
index 52e1a53..d1282a5 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 clamp_5f0819() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_5f0819()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.glsl
index 0eb3ecd..72e2732 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 clamp_5f0819() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 clamp_5f0819() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 clamp_5f0819() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 clamp_5f0819() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.wgsl
index 4ee1243..8f0ec82 100644
--- a/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/5f0819.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn clamp_5f0819() -> vec3<i32> {
   var res : vec3<i32> = clamp(vec3<i32>(1i), vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_5f0819();
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl
index 45dd7f5..eff9723 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn clamp(vec<2, i32>, vec<2, i32>, vec<2, i32>) -> vec<2, i32>
 fn clamp_6c1749() -> vec2<i32>{
   var res: vec2<i32> = clamp(vec2<i32>(1i), vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_6c1749();
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.dxc.hlsl
index f4e2e60..5241243 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 clamp_6c1749() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_6c1749()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.fxc.hlsl
index f4e2e60..5241243 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 clamp_6c1749() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_6c1749()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.glsl
index bc42f5f..53cf0c3 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 clamp_6c1749() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 clamp_6c1749() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.wgsl
index a57195a..8a26cce 100644
--- a/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/6c1749.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn clamp_6c1749() -> vec2<i32> {
   var res : vec2<i32> = clamp(vec2<i32>(1i), vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_6c1749();
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl
index 7a5ebc5..7221160 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn clamp(vec<2, u32>, vec<2, u32>, vec<2, u32>) -> vec<2, u32>
 fn clamp_7706d7() -> vec2<u32>{
   var res: vec2<u32> = clamp(vec2<u32>(1u), vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_7706d7();
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.dxc.hlsl
index cc70f68..2ff0379 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 clamp_7706d7() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_7706d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.fxc.hlsl
index cc70f68..2ff0379 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 clamp_7706d7() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_7706d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.glsl
index 9b84153..df4182a 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 clamp_7706d7() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 clamp_7706d7() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.wgsl
index 4e29a1d..677a6be 100644
--- a/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/7706d7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn clamp_7706d7() -> vec2<u32> {
   var res : vec2<u32> = clamp(vec2<u32>(1u), vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_7706d7();
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl
index 5697237..2aaba98 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn clamp(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn clamp_867397() -> vec3<f32>{
   var res: vec3<f32> = clamp(vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_867397();
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.dxc.hlsl
index d4d4022..cc97d00 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 clamp_867397() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_867397()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.fxc.hlsl
index d4d4022..cc97d00 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 clamp_867397() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_867397()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.glsl
index 1f30845..8bd9423 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 clamp_867397() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 clamp_867397() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 clamp_867397() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 clamp_867397() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.wgsl
index 65ab5ad..016c95e 100644
--- a/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/867397.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn clamp_867397() -> vec3<f32> {
   var res : vec3<f32> = clamp(vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_867397();
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl
index 1e07581..2f481cf 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn clamp(u32, u32, u32) -> u32
 fn clamp_a2de25() -> u32{
   var res: u32 = clamp(1u, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_a2de25();
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.dxc.hlsl
index df5672b..68187de 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint clamp_a2de25() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_a2de25()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.fxc.hlsl
index df5672b..68187de 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint clamp_a2de25() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_a2de25()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.glsl
index 99690a3..bd1e703 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint clamp_a2de25() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint clamp_a2de25() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.wgsl
index ac3c4eb..871a6bf 100644
--- a/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/a2de25.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn clamp_a2de25() -> u32 {
   var res : u32 = clamp(1u, 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_a2de25();
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl
index 58d8a8a..cc45833 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn clamp(i32, i32, i32) -> i32
 fn clamp_b07c65() -> i32{
   var res: i32 = clamp(1i, 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b07c65();
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.dxc.hlsl
index 904a631..81d6e4d 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int clamp_b07c65() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_b07c65()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.fxc.hlsl
index 904a631..81d6e4d 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int clamp_b07c65() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_b07c65()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.glsl
index 830ac11..a3a2a8b 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int clamp_b07c65() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int clamp_b07c65() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.wgsl
index ef0ecba..e479dbc 100644
--- a/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/b07c65.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn clamp_b07c65() -> i32 {
   var res : i32 = clamp(1i, 1i, 1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b07c65();
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl
index abb11f2..9f88cf4 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn clamp(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn clamp_b195eb() -> vec3<f16>{
   var res: vec3<f16> = clamp(vec3<f16>(1.h), vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b195eb();
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.dxc.hlsl
index 979a813..520242d 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> clamp_b195eb() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.glsl
index 915461a..e07e9ac 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 clamp_b195eb() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 clamp_b195eb() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.wgsl
index ef1d937..0b18792 100644
--- a/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/b195eb.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn clamp_b195eb() -> vec3<f16> {
   var res : vec3<f16> = clamp(vec3<f16>(1.0h), vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b195eb();
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl
index 4180759..5f61fad 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn clamp(vec<4, u32>, vec<4, u32>, vec<4, u32>) -> vec<4, u32>
 fn clamp_bd43ce() -> vec4<u32>{
   var res: vec4<u32> = clamp(vec4<u32>(1u), vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_bd43ce();
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.dxc.hlsl
index ab7b62d..5a8a002 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 clamp_bd43ce() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_bd43ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.fxc.hlsl
index ab7b62d..5a8a002 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 clamp_bd43ce() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_bd43ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.glsl
index ac880a1..5988d19 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 clamp_bd43ce() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 clamp_bd43ce() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.wgsl
index 444c23c..103021b 100644
--- a/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/clamp/bd43ce.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn clamp_bd43ce() -> vec4<u32> {
   var res : vec4<u32> = clamp(vec4<u32>(1u), vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_bd43ce();
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl
index c34fd5b..3cfd356 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn cos(vec<3, f16>) -> vec<3, f16>
 fn cos_0835a8() -> vec3<f16>{
   var res: vec3<f16> = cos(vec3<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0835a8();
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.dxc.hlsl
index bd6fabb..0c399b7 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> cos_0835a8() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
   return;
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.glsl
index 1aa3f77..38d5e61 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cos_0835a8() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cos_0835a8() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.wgsl
index 3f3e569..b1c5b7f 100644
--- a/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/0835a8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn cos_0835a8() -> vec3<f16> {
   var res : vec3<f16> = cos(vec3<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0835a8();
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl
index 9e51987..b938cc4 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn cos(vec<4, f16>) -> vec<4, f16>
 fn cos_0a89f7() -> vec4<f16>{
   var res: vec4<f16> = cos(vec4<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0a89f7();
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.dxc.hlsl
index 1745225..8cc7c78 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> cos_0a89f7() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
   return;
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.glsl
index 6231290..433fd10 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cos_0a89f7() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cos_0a89f7() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.wgsl
index bf53fc8..54ae2c2 100644
--- a/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/0a89f7.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn cos_0a89f7() -> vec4<f16> {
   var res : vec4<f16> = cos(vec4<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0a89f7();
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl
index 1447b2b..c074b12 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn cos(vec<3, f32>) -> vec<3, f32>
 fn cos_16dc15() -> vec3<f32>{
   var res: vec3<f32> = cos(vec3<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_16dc15();
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.dxc.hlsl
index d61a73b..45e8a7d 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cos_16dc15() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cos_16dc15()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.fxc.hlsl
index d61a73b..45e8a7d 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cos_16dc15() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cos_16dc15()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.glsl
index a19c250..7cb0575 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 cos_16dc15() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 cos_16dc15() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 cos_16dc15() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 cos_16dc15() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.wgsl
index 885503a..abfc42b 100644
--- a/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/16dc15.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn cos_16dc15() -> vec3<f32> {
   var res : vec3<f32> = cos(vec3<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_16dc15();
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl
index 1a87d16..386ab3a 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn cos(vec<4, f32>) -> vec<4, f32>
 fn cos_29d66d() -> vec4<f32>{
   var res: vec4<f32> = cos(vec4<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_29d66d();
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.dxc.hlsl
index fbdff9e..c3884f6 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cos_29d66d() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cos_29d66d()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.fxc.hlsl
index fbdff9e..c3884f6 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cos_29d66d() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cos_29d66d()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.glsl
index 6ebc726..dfe2412 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cos_29d66d() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cos_29d66d() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.wgsl
index 3fd6eab..974b9fd 100644
--- a/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/29d66d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn cos_29d66d() -> vec4<f32> {
   var res : vec4<f32> = cos(vec4<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_29d66d();
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl
index 79beb64..0acd848 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn cos(vec<2, f16>) -> vec<2, f16>
 fn cos_5bc2c6() -> vec2<f16>{
   var res: vec2<f16> = cos(vec2<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_5bc2c6();
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.dxc.hlsl
index be016f2..380dbfb 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> cos_5bc2c6() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
   return;
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.glsl
index 01b7af7..12855f6 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cos_5bc2c6() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cos_5bc2c6() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.wgsl
index 6905e4b..70a2519 100644
--- a/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/5bc2c6.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn cos_5bc2c6() -> vec2<f16> {
   var res : vec2<f16> = cos(vec2<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_5bc2c6();
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl
index 74b9961..7d13fe2 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn cos(vec<2, f32>) -> vec<2, f32>
 fn cos_c3b486() -> vec2<f32>{
   var res: vec2<f32> = cos(vec2<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c3b486();
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.dxc.hlsl
index 0c215b5..04bd898 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cos_c3b486() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cos_c3b486()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.fxc.hlsl
index 0c215b5..04bd898 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cos_c3b486() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cos_c3b486()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.glsl
index e71acd2..8f72f00 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cos_c3b486() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cos_c3b486() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.wgsl
index 762ced9..9560840 100644
--- a/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/c3b486.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn cos_c3b486() -> vec2<f32> {
   var res : vec2<f32> = cos(vec2<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c3b486();
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl
index c3280ff..f9333c5 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn cos(f32) -> f32
 fn cos_c5c28e() -> f32{
   var res: f32 = cos(0.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c5c28e();
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.dxc.hlsl
index 7ed4b7c..c066b67 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cos_c5c28e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cos_c5c28e()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.fxc.hlsl
index 7ed4b7c..c066b67 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cos_c5c28e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cos_c5c28e()));
   return;
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.glsl
index 851154a..afddb81 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cos_c5c28e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cos_c5c28e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.wgsl
index 6e36055..7fbbe93 100644
--- a/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/c5c28e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn cos_c5c28e() -> f32 {
   var res : f32 = cos(0.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c5c28e();
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl
index ea79dbc..418a121 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn cos(f16) -> f16
 fn cos_fc047d() -> f16{
   var res: f16 = cos(0.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_fc047d();
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.dxc.hlsl
index 882a73b..84b14a3 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t cos_fc047d() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, cos_fc047d());
   return;
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.glsl
index 39410ba..122e5fe 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cos_fc047d() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cos_fc047d() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.wgsl
index bad627a..bdcb584 100644
--- a/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cos/fc047d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn cos_fc047d() -> f16 {
   var res : f16 = cos(0.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_fc047d();
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl
index 680277a..314500b 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn cosh(f16) -> f16
 fn cosh_2ed778() -> f16{
   var res: f16 = cosh(0.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_2ed778();
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.dxc.hlsl
index e9d6647..485469c 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t cosh_2ed778() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, cosh_2ed778());
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.glsl
index 297f41e..32d8922 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cosh_2ed778() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cosh_2ed778() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.wgsl
index 1e59270..44609c2 100644
--- a/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/2ed778.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn cosh_2ed778() -> f16 {
   var res : f16 = cosh(0.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_2ed778();
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl
index 4237710..03cb2c3 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn cosh(vec<3, f32>) -> vec<3, f32>
 fn cosh_377652() -> vec3<f32>{
   var res: vec3<f32> = cosh(vec3<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_377652();
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.dxc.hlsl
index 6691035..b0f94e1 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cosh_377652() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cosh_377652()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.fxc.hlsl
index 6691035..b0f94e1 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cosh_377652() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cosh_377652()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.glsl
index 186ade4..0e36200 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 cosh_377652() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 cosh_377652() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 cosh_377652() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 cosh_377652() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.wgsl
index 2fc3562..67b08a5 100644
--- a/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/377652.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn cosh_377652() -> vec3<f32> {
   var res : vec3<f32> = cosh(vec3<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_377652();
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl
index db88199..fdc2f11 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn cosh(vec<4, f16>) -> vec<4, f16>
 fn cosh_3b7bbf() -> vec4<f16>{
   var res: vec4<f16> = cosh(vec4<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_3b7bbf();
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.dxc.hlsl
index cb733e3..add05e6 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> cosh_3b7bbf() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.glsl
index 9ca2775..15b6b20 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cosh_3b7bbf() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cosh_3b7bbf() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.wgsl
index 21f12b1..b295c89 100644
--- a/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/3b7bbf.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn cosh_3b7bbf() -> vec4<f16> {
   var res : vec4<f16> = cosh(vec4<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_3b7bbf();
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl
index eac6340..f56b36d 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn cosh(vec<2, f16>) -> vec<2, f16>
 fn cosh_43b672() -> vec2<f16>{
   var res: vec2<f16> = cosh(vec2<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_43b672();
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.dxc.hlsl
index 1361b8d..7136800 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> cosh_43b672() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.glsl
index 4e4faff..9868f4a 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cosh_43b672() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cosh_43b672() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.wgsl
index aa5a2cf..73d3ee7 100644
--- a/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/43b672.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn cosh_43b672() -> vec2<f16> {
   var res : vec2<f16> = cosh(vec2<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_43b672();
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl
index 6a66288..b9a3628 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn cosh(vec<3, f16>) -> vec<3, f16>
 fn cosh_b1b8a0() -> vec3<f16>{
   var res: vec3<f16> = cosh(vec3<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_b1b8a0();
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.dxc.hlsl
index 051f384..b872ce9 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> cosh_b1b8a0() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.glsl
index a4f3566..5d775b9 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cosh_b1b8a0() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cosh_b1b8a0() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.wgsl
index e374425..079b0fd 100644
--- a/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/b1b8a0.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn cosh_b1b8a0() -> vec3<f16> {
   var res : vec3<f16> = cosh(vec3<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_b1b8a0();
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl
index 3a897f6..0d7ad26 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn cosh(vec<2, f32>) -> vec<2, f32>
 fn cosh_c13756() -> vec2<f32>{
   var res: vec2<f32> = cosh(vec2<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_c13756();
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.dxc.hlsl
index c3abb90..acd91cb 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cosh_c13756() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cosh_c13756()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.fxc.hlsl
index c3abb90..acd91cb 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cosh_c13756() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cosh_c13756()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.glsl
index eeab7ee..bb58037 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cosh_c13756() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cosh_c13756() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.wgsl
index a199087..1107a10 100644
--- a/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/c13756.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn cosh_c13756() -> vec2<f32> {
   var res : vec2<f32> = cosh(vec2<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_c13756();
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl
index e842b7a..e26b029 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn cosh(f32) -> f32
 fn cosh_da92dd() -> f32{
   var res: f32 = cosh(0.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_da92dd();
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.dxc.hlsl
index c9f3311..ccbf473 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cosh_da92dd() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cosh_da92dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.fxc.hlsl
index c9f3311..ccbf473 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cosh_da92dd() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cosh_da92dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.glsl
index c0164e2..7ec8934 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cosh_da92dd() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cosh_da92dd() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.wgsl
index 92117a6..c6c9398 100644
--- a/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/da92dd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn cosh_da92dd() -> f32 {
   var res : f32 = cosh(0.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_da92dd();
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl
index 34063b5..992b516 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn cosh(vec<4, f32>) -> vec<4, f32>
 fn cosh_e0c1de() -> vec4<f32>{
   var res: vec4<f32> = cosh(vec4<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_e0c1de();
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.dxc.hlsl
index 4f24202..26d9a3b 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cosh_e0c1de() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.fxc.hlsl
index 4f24202..26d9a3b 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cosh_e0c1de() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
   return;
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.glsl
index 2f80e52..aa365b7 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cosh_e0c1de() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cosh_e0c1de() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.wgsl
index 9900dcb..06c1905 100644
--- a/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cosh/e0c1de.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn cosh_e0c1de() -> vec4<f32> {
   var res : vec4<f32> = cosh(vec4<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_e0c1de();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl
index f802291..b21e3ea 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn countLeadingZeros(u32) -> u32
 fn countLeadingZeros_208d46() -> u32{
   var res: u32 = countLeadingZeros(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_208d46();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl
index 8b78d4d..cfacfb8 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countLeadingZeros_208d46() {
   uint res = 31u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_208d46()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl
index 8b78d4d..cfacfb8 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countLeadingZeros_208d46() {
   uint res = 31u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_208d46()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.glsl
index 9f5c7c6..6cdb090 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countLeadingZeros_208d46() {
   uint res = 31u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countLeadingZeros_208d46() {
   uint res = 31u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.wgsl
index eae85c8..ad31959 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/208d46.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn countLeadingZeros_208d46() -> u32 {
   var res : u32 = countLeadingZeros(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_208d46();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl
index d12bc84..fcd821c 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn countLeadingZeros(i32) -> i32
 fn countLeadingZeros_6d4656() -> i32{
   var res: i32 = countLeadingZeros(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_6d4656();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl
index e0b4e60..3d4e88a 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countLeadingZeros_6d4656() {
   int res = 31;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl
index e0b4e60..3d4e88a 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countLeadingZeros_6d4656() {
   int res = 31;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.glsl
index 734fbab..4a6efbb 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countLeadingZeros_6d4656() {
   int res = 31;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countLeadingZeros_6d4656() {
   int res = 31;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.wgsl
index 23729e0..ce8b06a 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/6d4656.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn countLeadingZeros_6d4656() -> i32 {
   var res : i32 = countLeadingZeros(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_6d4656();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl
index 204956a..ca2a16b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn countLeadingZeros(vec<2, u32>) -> vec<2, u32>
 fn countLeadingZeros_70783f() -> vec2<u32>{
   var res: vec2<u32> = countLeadingZeros(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_70783f();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl
index 03424df..2b08ff8 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countLeadingZeros_70783f() {
   uint2 res = (31u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_70783f()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl
index 03424df..2b08ff8 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countLeadingZeros_70783f() {
   uint2 res = (31u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_70783f()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.glsl
index 8e319ee..382dd46 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countLeadingZeros_70783f() {
   uvec2 res = uvec2(31u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countLeadingZeros_70783f() {
   uvec2 res = uvec2(31u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.wgsl
index d957e28..c0dffa0 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/70783f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn countLeadingZeros_70783f() -> vec2<u32> {
   var res : vec2<u32> = countLeadingZeros(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_70783f();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl
index 9a311aa..2cb7751 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn countLeadingZeros(vec<3, i32>) -> vec<3, i32>
 fn countLeadingZeros_7c38a6() -> vec3<i32>{
   var res: vec3<i32> = countLeadingZeros(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_7c38a6();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl
index 2b3be28..5f6e185 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countLeadingZeros_7c38a6() {
   int3 res = (31).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl
index 2b3be28..5f6e185 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countLeadingZeros_7c38a6() {
   int3 res = (31).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.glsl
index 74bb8a8..3d28784 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 countLeadingZeros_7c38a6() {
-  ivec3 res = ivec3(31);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 countLeadingZeros_7c38a6() {
+  ivec3 res = ivec3(31);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 countLeadingZeros_7c38a6() {
-  ivec3 res = ivec3(31);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 countLeadingZeros_7c38a6() {
+  ivec3 res = ivec3(31);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.wgsl
index 324d821..c8a2052 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/7c38a6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn countLeadingZeros_7c38a6() -> vec3<i32> {
   var res : vec3<i32> = countLeadingZeros(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_7c38a6();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl
index d3e9fdc..921ac5f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn countLeadingZeros(vec<2, i32>) -> vec<2, i32>
 fn countLeadingZeros_858d40() -> vec2<i32>{
   var res: vec2<i32> = countLeadingZeros(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_858d40();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl
index cb8d3c9..d41478b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countLeadingZeros_858d40() {
   int2 res = (31).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl
index cb8d3c9..d41478b 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countLeadingZeros_858d40() {
   int2 res = (31).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.glsl
index 3b5f6f7..0431d73 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countLeadingZeros_858d40() {
   ivec2 res = ivec2(31);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countLeadingZeros_858d40() {
   ivec2 res = ivec2(31);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.wgsl
index 50e4141..c8b3518 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/858d40.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn countLeadingZeros_858d40() -> vec2<i32> {
   var res : vec2<i32> = countLeadingZeros(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_858d40();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl
index 3190f1b..b17b4a9 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn countLeadingZeros(vec<3, u32>) -> vec<3, u32>
 fn countLeadingZeros_ab6345() -> vec3<u32>{
   var res: vec3<u32> = countLeadingZeros(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_ab6345();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl
index 3bbdc35..c46295c 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countLeadingZeros_ab6345() {
   uint3 res = (31u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_ab6345()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl
index 3bbdc35..c46295c 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countLeadingZeros_ab6345() {
   uint3 res = (31u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_ab6345()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.glsl
index c6c5553..d2581dd 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 countLeadingZeros_ab6345() {
-  uvec3 res = uvec3(31u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 countLeadingZeros_ab6345() {
+  uvec3 res = uvec3(31u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 countLeadingZeros_ab6345() {
-  uvec3 res = uvec3(31u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 countLeadingZeros_ab6345() {
+  uvec3 res = uvec3(31u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.wgsl
index 2191df3..367dd45 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/ab6345.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn countLeadingZeros_ab6345() -> vec3<u32> {
   var res : vec3<u32> = countLeadingZeros(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_ab6345();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl
index 03993a9..cb74007 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn countLeadingZeros(vec<4, i32>) -> vec<4, i32>
 fn countLeadingZeros_eab32b() -> vec4<i32>{
   var res: vec4<i32> = countLeadingZeros(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_eab32b();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl
index 063223f..25d4b19 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countLeadingZeros_eab32b() {
   int4 res = (31).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl
index 063223f..25d4b19 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countLeadingZeros_eab32b() {
   int4 res = (31).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.glsl
index fe06720..524e198 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countLeadingZeros_eab32b() {
   ivec4 res = ivec4(31);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countLeadingZeros_eab32b() {
   ivec4 res = ivec4(31);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.wgsl
index 0b913ab..21dabdd 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/eab32b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn countLeadingZeros_eab32b() -> vec4<i32> {
   var res : vec4<i32> = countLeadingZeros(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_eab32b();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl
index 7bdf135..52bb3de 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn countLeadingZeros(vec<4, u32>) -> vec<4, u32>
 fn countLeadingZeros_f70103() -> vec4<u32>{
   var res: vec4<u32> = countLeadingZeros(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_f70103();
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl
index 9c9f0eb..346164f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countLeadingZeros_f70103() {
   uint4 res = (31u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_f70103()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl
index 9c9f0eb..346164f 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countLeadingZeros_f70103() {
   uint4 res = (31u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_f70103()));
   return;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.glsl
index 11bc32f..ed1f168 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countLeadingZeros_f70103() {
   uvec4 res = uvec4(31u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countLeadingZeros_f70103() {
   uvec4 res = uvec4(31u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.wgsl
index 8664813..34ed6d4 100644
--- a/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countLeadingZeros/f70103.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn countLeadingZeros_f70103() -> vec4<u32> {
   var res : vec4<u32> = countLeadingZeros(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_f70103();
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl
index c69a803..116d835 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn countOneBits(vec<4, u32>) -> vec<4, u32>
 fn countOneBits_0d0e46() -> vec4<u32>{
   var res: vec4<u32> = countOneBits(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0d0e46();
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.dxc.hlsl
index fd37f6c..40d623a 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countOneBits_0d0e46() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0d0e46()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.fxc.hlsl
index fd37f6c..40d623a 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countOneBits_0d0e46() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0d0e46()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.glsl
index 8379a7f..9759fd9 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countOneBits_0d0e46() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countOneBits_0d0e46() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.wgsl
index 70094a9..96e8b4a 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0d0e46.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn countOneBits_0d0e46() -> vec4<u32> {
   var res : vec4<u32> = countOneBits(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0d0e46();
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl
index cbb0216..e998b3c 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn countOneBits(vec<4, i32>) -> vec<4, i32>
 fn countOneBits_0f7980() -> vec4<i32>{
   var res: vec4<i32> = countOneBits(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0f7980();
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.dxc.hlsl
index dc23fcd..bcf7f53 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countOneBits_0f7980() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.fxc.hlsl
index dc23fcd..bcf7f53 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countOneBits_0f7980() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.glsl
index 8b490b0..8bc5f44 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countOneBits_0f7980() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countOneBits_0f7980() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.wgsl
index f92c0b7..a6d54c3 100644
--- a/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/0f7980.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn countOneBits_0f7980() -> vec4<i32> {
   var res : vec4<i32> = countOneBits(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0f7980();
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl
index 3c4a2eb..e4a295a 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn countOneBits(vec<3, i32>) -> vec<3, i32>
 fn countOneBits_65d2ae() -> vec3<i32>{
   var res: vec3<i32> = countOneBits(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_65d2ae();
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.dxc.hlsl
index f6ba2681..7457d21 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countOneBits_65d2ae() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.fxc.hlsl
index f6ba2681..7457d21 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countOneBits_65d2ae() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.glsl
index dee8b40..e613a73 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 countOneBits_65d2ae() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 countOneBits_65d2ae() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 countOneBits_65d2ae() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 countOneBits_65d2ae() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.wgsl
index e4ee2f1..2ab5797 100644
--- a/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/65d2ae.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn countOneBits_65d2ae() -> vec3<i32> {
   var res : vec3<i32> = countOneBits(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_65d2ae();
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl
index fd86c0d..931f95d 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn countOneBits(vec<3, u32>) -> vec<3, u32>
 fn countOneBits_690cfc() -> vec3<u32>{
   var res: vec3<u32> = countOneBits(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_690cfc();
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.dxc.hlsl
index 4d19763..0b19b0f 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countOneBits_690cfc() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_690cfc()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.fxc.hlsl
index 4d19763..0b19b0f 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countOneBits_690cfc() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_690cfc()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.glsl
index 36e922e..7429ed6 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 countOneBits_690cfc() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 countOneBits_690cfc() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 countOneBits_690cfc() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 countOneBits_690cfc() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.wgsl
index e9093de..a818037 100644
--- a/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/690cfc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn countOneBits_690cfc() -> vec3<u32> {
   var res : vec3<u32> = countOneBits(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_690cfc();
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl
index 296f140..8593012 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn countOneBits(vec<2, u32>) -> vec<2, u32>
 fn countOneBits_94fd81() -> vec2<u32>{
   var res: vec2<u32> = countOneBits(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_94fd81();
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.dxc.hlsl
index e214a01..cec223f 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countOneBits_94fd81() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_94fd81()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.fxc.hlsl
index e214a01..cec223f 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countOneBits_94fd81() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_94fd81()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.glsl
index 8ba8bb3..b1d8614 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countOneBits_94fd81() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countOneBits_94fd81() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.wgsl
index 1caa0fa..304d313 100644
--- a/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/94fd81.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn countOneBits_94fd81() -> vec2<u32> {
   var res : vec2<u32> = countOneBits(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_94fd81();
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl
index 489e10e..a6be369 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn countOneBits(u32) -> u32
 fn countOneBits_ae44f9() -> u32{
   var res: u32 = countOneBits(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_ae44f9();
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.dxc.hlsl
index dfd2553..d27baab 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countOneBits_ae44f9() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_ae44f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.fxc.hlsl
index dfd2553..d27baab 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countOneBits_ae44f9() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_ae44f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.glsl
index 6b8c1bb..0a65aeb 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countOneBits_ae44f9() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countOneBits_ae44f9() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.wgsl
index 027f054..c3ee397 100644
--- a/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/ae44f9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn countOneBits_ae44f9() -> u32 {
   var res : u32 = countOneBits(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_ae44f9();
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl
index 4d7f892..117452b 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn countOneBits(vec<2, i32>) -> vec<2, i32>
 fn countOneBits_af90e2() -> vec2<i32>{
   var res: vec2<i32> = countOneBits(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_af90e2();
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.dxc.hlsl
index 61ad8d2..d23f0fe 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countOneBits_af90e2() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.fxc.hlsl
index 61ad8d2..d23f0fe 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countOneBits_af90e2() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.glsl
index 71e0a32..3317334 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countOneBits_af90e2() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countOneBits_af90e2() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.wgsl
index 629ef05..40ee947 100644
--- a/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/af90e2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn countOneBits_af90e2() -> vec2<i32> {
   var res : vec2<i32> = countOneBits(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_af90e2();
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl
index e208969..b525d5e 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn countOneBits(i32) -> i32
 fn countOneBits_fd88b2() -> i32{
   var res: i32 = countOneBits(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_fd88b2();
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.dxc.hlsl
index f521bcb..2730eb4 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countOneBits_fd88b2() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.fxc.hlsl
index f521bcb..2730eb4 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countOneBits_fd88b2() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.glsl
index c5f75c6..7059e6a 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countOneBits_fd88b2() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countOneBits_fd88b2() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.wgsl
index 97da777..938ada1 100644
--- a/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countOneBits/fd88b2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn countOneBits_fd88b2() -> i32 {
   var res : i32 = countOneBits(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_fd88b2();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl
index 0046534..3b2ff37 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn countTrailingZeros(vec<2, u32>) -> vec<2, u32>
 fn countTrailingZeros_1ad138() -> vec2<u32>{
   var res: vec2<u32> = countTrailingZeros(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1ad138();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl
index 187b1ef..3c3f189 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countTrailingZeros_1ad138() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_1ad138()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl
index 187b1ef..3c3f189 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countTrailingZeros_1ad138() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_1ad138()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.glsl
index 21d0008..1af29f7 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countTrailingZeros_1ad138() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countTrailingZeros_1ad138() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.wgsl
index 2fb962b..6674a30 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1ad138.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn countTrailingZeros_1ad138() -> vec2<u32> {
   var res : vec2<u32> = countTrailingZeros(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1ad138();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl
index 5e0212b..3459dd5 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn countTrailingZeros(vec<4, i32>) -> vec<4, i32>
 fn countTrailingZeros_1dc84a() -> vec4<i32>{
   var res: vec4<i32> = countTrailingZeros(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1dc84a();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl
index 712c22b..eb5394a 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countTrailingZeros_1dc84a() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl
index 712c22b..eb5394a 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countTrailingZeros_1dc84a() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.glsl
index 5a9117f..7a366b8 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countTrailingZeros_1dc84a() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countTrailingZeros_1dc84a() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.wgsl
index c696d87..91a40c4 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/1dc84a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn countTrailingZeros_1dc84a() -> vec4<i32> {
   var res : vec4<i32> = countTrailingZeros(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1dc84a();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl
index 0abbaf0..09fb333 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn countTrailingZeros(u32) -> u32
 fn countTrailingZeros_21e394() -> u32{
   var res: u32 = countTrailingZeros(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_21e394();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl
index f8dbaf6..01b2784 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countTrailingZeros_21e394() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_21e394()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl
index f8dbaf6..01b2784 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countTrailingZeros_21e394() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_21e394()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.glsl
index aa4ea5a..b439bef 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countTrailingZeros_21e394() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countTrailingZeros_21e394() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.wgsl
index a7c12b1..421defc 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/21e394.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn countTrailingZeros_21e394() -> u32 {
   var res : u32 = countTrailingZeros(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_21e394();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl
index 708b017..5161f84 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn countTrailingZeros(vec<2, i32>) -> vec<2, i32>
 fn countTrailingZeros_327c37() -> vec2<i32>{
   var res: vec2<i32> = countTrailingZeros(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_327c37();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl
index d1b96e2..6f24982 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countTrailingZeros_327c37() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl
index d1b96e2..6f24982 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countTrailingZeros_327c37() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.glsl
index 24e311c..3b84d6e 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countTrailingZeros_327c37() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countTrailingZeros_327c37() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.wgsl
index 2eac701..9d1e582 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/327c37.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn countTrailingZeros_327c37() -> vec2<i32> {
   var res : vec2<i32> = countTrailingZeros(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_327c37();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl
index e5eccca..7642eb9 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn countTrailingZeros(i32) -> i32
 fn countTrailingZeros_42fed6() -> i32{
   var res: i32 = countTrailingZeros(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_42fed6();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl
index 6838b59..cf788ab 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countTrailingZeros_42fed6() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl
index 6838b59..cf788ab 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countTrailingZeros_42fed6() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.glsl
index b838710..0d27510 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countTrailingZeros_42fed6() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countTrailingZeros_42fed6() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.wgsl
index 4709fac..1dcb3c0 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/42fed6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn countTrailingZeros_42fed6() -> i32 {
   var res : i32 = countTrailingZeros(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_42fed6();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl
index 816eb9b..296a544 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn countTrailingZeros(vec<3, u32>) -> vec<3, u32>
 fn countTrailingZeros_8ed26f() -> vec3<u32>{
   var res: vec3<u32> = countTrailingZeros(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_8ed26f();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl
index 87c1c08..35ef450 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countTrailingZeros_8ed26f() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_8ed26f()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl
index 87c1c08..35ef450 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countTrailingZeros_8ed26f() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_8ed26f()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.glsl
index 5de03ff..f3faf53 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 countTrailingZeros_8ed26f() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 countTrailingZeros_8ed26f() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 countTrailingZeros_8ed26f() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 countTrailingZeros_8ed26f() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.wgsl
index 4e5da0b..10f6ad9 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/8ed26f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn countTrailingZeros_8ed26f() -> vec3<u32> {
   var res : vec3<u32> = countTrailingZeros(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_8ed26f();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl
index f75e718..72c5baa 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn countTrailingZeros(vec<3, i32>) -> vec<3, i32>
 fn countTrailingZeros_acfacb() -> vec3<i32>{
   var res: vec3<i32> = countTrailingZeros(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_acfacb();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl
index ed58534..ab59153 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countTrailingZeros_acfacb() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl
index ed58534..ab59153 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countTrailingZeros_acfacb() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.glsl
index e3a8ef6..e20764a 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 countTrailingZeros_acfacb() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 countTrailingZeros_acfacb() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 countTrailingZeros_acfacb() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 countTrailingZeros_acfacb() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.wgsl
index c8cf441..d341729 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/acfacb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn countTrailingZeros_acfacb() -> vec3<i32> {
   var res : vec3<i32> = countTrailingZeros(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_acfacb();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl
index 0087c40..a697a15 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn countTrailingZeros(vec<4, u32>) -> vec<4, u32>
 fn countTrailingZeros_d2b4a0() -> vec4<u32>{
   var res: vec4<u32> = countTrailingZeros(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_d2b4a0();
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl
index 3cb7042..3cc2aa1 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countTrailingZeros_d2b4a0() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_d2b4a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl
index 3cb7042..3cc2aa1 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countTrailingZeros_d2b4a0() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_d2b4a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.glsl
index 6ad4a15..595bf06 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countTrailingZeros_d2b4a0() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countTrailingZeros_d2b4a0() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.wgsl
index bb98a53..624d316 100644
--- a/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/countTrailingZeros/d2b4a0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn countTrailingZeros_d2b4a0() -> vec4<u32> {
   var res : vec4<u32> = countTrailingZeros(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_d2b4a0();
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl
index 4265fba..28d0f52 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn cross(vec3<f32>, vec3<f32>) -> vec3<f32>
 fn cross_041cb0() -> vec3<f32>{
   var res: vec3<f32> = cross(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_041cb0();
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl
index b997a0c..154bec3 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cross_041cb0() {
   float3 res = (0.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cross_041cb0()));
   return;
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl
index b997a0c..154bec3 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cross_041cb0() {
   float3 res = (0.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cross_041cb0()));
   return;
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl
index 946c471..7af90f9 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 cross_041cb0() {
-  vec3 res = vec3(0.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 cross_041cb0() {
+  vec3 res = vec3(0.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 cross_041cb0() {
-  vec3 res = vec3(0.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 cross_041cb0() {
+  vec3 res = vec3(0.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl
index 16949ff..2d28a69 100644
--- a/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cross/041cb0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn cross_041cb0() -> vec3<f32> {
   var res : vec3<f32> = cross(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_041cb0();
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl
index bac59217..50c594f 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn cross(vec3<f16>, vec3<f16>) -> vec3<f16>
 fn cross_9857cb() -> vec3<f16>{
   var res: vec3<f16> = cross(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_9857cb();
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.dxc.hlsl
index 76bc80b..be623aa 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> cross_9857cb() {
   vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
   return;
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.glsl
index f47efca..fc160aa 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cross_9857cb() {
   f16vec3 res = f16vec3(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cross_9857cb() {
   f16vec3 res = f16vec3(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl
index 738b45c..4955d74 100644
--- a/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/cross/9857cb.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn cross_9857cb() -> vec3<f16> {
   var res : vec3<f16> = cross(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_9857cb();
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl
index 0c5346e..6d761d1 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn degrees(vec<4, f32>) -> vec<4, f32>
 fn degrees_0d170c() -> vec4<f32>{
   var res: vec4<f32> = degrees(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_0d170c();
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
index 26e8cb9..0942036 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 degrees_0d170c() {
   float4 res = (57.2957763671875f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(degrees_0d170c()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
index 26e8cb9..0942036 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 degrees_0d170c() {
   float4 res = (57.2957763671875f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(degrees_0d170c()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
index e0aa756..fa1a3d0 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 degrees_0d170c() {
   vec4 res = vec4(57.2957763671875f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 degrees_0d170c() {
   vec4 res = vec4(57.2957763671875f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.wgsl
index 3162983..6f0d972 100644
--- a/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/0d170c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn degrees_0d170c() -> vec4<f32> {
   var res : vec4<f32> = degrees(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_0d170c();
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl
index 062ded1..1e885d2 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn degrees(vec<2, f32>) -> vec<2, f32>
 fn degrees_1ad5df() -> vec2<f32>{
   var res: vec2<f32> = degrees(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_1ad5df();
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
index cd5c32e..af9cbe9 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 degrees_1ad5df() {
   float2 res = (57.2957763671875f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
index cd5c32e..af9cbe9 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 degrees_1ad5df() {
   float2 res = (57.2957763671875f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
index c2949fb..3eab306 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 degrees_1ad5df() {
   vec2 res = vec2(57.2957763671875f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 degrees_1ad5df() {
   vec2 res = vec2(57.2957763671875f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.wgsl
index 8f108c3..9557a6e 100644
--- a/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/1ad5df.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn degrees_1ad5df() -> vec2<f32> {
   var res : vec2<f32> = degrees(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_1ad5df();
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl
index 5b23c17..ade6186 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn degrees(vec<3, f32>) -> vec<3, f32>
 fn degrees_2af623() -> vec3<f32>{
   var res: vec3<f32> = degrees(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_2af623();
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
index 13b576c..f576941 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 degrees_2af623() {
   float3 res = (57.2957763671875f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(degrees_2af623()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
index 13b576c..f576941 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 degrees_2af623() {
   float3 res = (57.2957763671875f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(degrees_2af623()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
index 4ce4004..b6f01f7 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 degrees_2af623() {
-  vec3 res = vec3(57.2957763671875f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 degrees_2af623() {
+  vec3 res = vec3(57.2957763671875f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 degrees_2af623() {
-  vec3 res = vec3(57.2957763671875f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 degrees_2af623() {
+  vec3 res = vec3(57.2957763671875f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.wgsl
index 8932768..c0612d2 100644
--- a/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/2af623.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn degrees_2af623() -> vec3<f32> {
   var res : vec3<f32> = degrees(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_2af623();
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl
index ac48c37..531a3fb 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn degrees(vec<4, f16>) -> vec<4, f16>
 fn degrees_3055d3() -> vec4<f16>{
   var res: vec4<f16> = degrees(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_3055d3();
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl
index 5384e84..ead5ff4 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> degrees_3055d3() {
   vector<float16_t, 4> res = (float16_t(57.3125h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl
index f6a610f..8d125d1 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 degrees_3055d3() {
   f16vec4 res = f16vec4(57.3125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 degrees_3055d3() {
   f16vec4 res = f16vec4(57.3125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.wgsl
index f4f8216..a5de0b2 100644
--- a/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/3055d3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn degrees_3055d3() -> vec4<f16> {
   var res : vec4<f16> = degrees(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_3055d3();
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl
index b740220..31b82f6 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn degrees(f32) -> f32
 fn degrees_51f705() -> f32{
   var res: f32 = degrees(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_51f705();
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
index 7d619c3..43323e9 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float degrees_51f705() {
   float res = 57.2957763671875f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(degrees_51f705()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
index 7d619c3..43323e9 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float degrees_51f705() {
   float res = 57.2957763671875f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(degrees_51f705()));
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
index 3449681..c81d637e 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float degrees_51f705() {
   float res = 57.2957763671875f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float degrees_51f705() {
   float res = 57.2957763671875f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.wgsl
index 3c59bfc..9e3cec7 100644
--- a/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/51f705.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn degrees_51f705() -> f32 {
   var res : f32 = degrees(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_51f705();
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl
index 95d6ca1..cfc2732 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn degrees(f16) -> f16
 fn degrees_5e9805() -> f16{
   var res: f16 = degrees(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_5e9805();
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl
index fc8219a..60ca655 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t degrees_5e9805() {
   float16_t res = float16_t(57.3125h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, degrees_5e9805());
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl
index d5e15a4..f70cf5b 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t degrees_5e9805() {
   float16_t res = 57.3125hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t degrees_5e9805() {
   float16_t res = 57.3125hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.wgsl
index 57d6e0f..5c18f80 100644
--- a/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/5e9805.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn degrees_5e9805() -> f16 {
   var res : f16 = degrees(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_5e9805();
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl
index 9983191..7b76053 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn degrees(vec<3, f16>) -> vec<3, f16>
 fn degrees_dfe8f4() -> vec3<f16>{
   var res: vec3<f16> = degrees(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_dfe8f4();
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl
index 9dd9f9b..bc24e7a 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> degrees_dfe8f4() {
   vector<float16_t, 3> res = (float16_t(57.3125h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl
index 30e415b..b4d1ac4 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 degrees_dfe8f4() {
   f16vec3 res = f16vec3(57.3125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 degrees_dfe8f4() {
   f16vec3 res = f16vec3(57.3125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.wgsl
index 8ca5bcc..103ac5c 100644
--- a/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/dfe8f4.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn degrees_dfe8f4() -> vec3<f16> {
   var res : vec3<f16> = degrees(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_dfe8f4();
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl
index a4e1c8c..7ac1003 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn degrees(vec<2, f16>) -> vec<2, f16>
 fn degrees_f59715() -> vec2<f16>{
   var res: vec2<f16> = degrees(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_f59715();
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl
index ef02922..0385ad8 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> degrees_f59715() {
   vector<float16_t, 2> res = (float16_t(57.3125h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
   return;
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl
index c5a3e9e..59b3545 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 degrees_f59715() {
   f16vec2 res = f16vec2(57.3125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 degrees_f59715() {
   f16vec2 res = f16vec2(57.3125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.wgsl
index 095d361..a787356 100644
--- a/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/degrees/f59715.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn degrees_f59715() -> vec2<f16> {
   var res : vec2<f16> = degrees(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_f59715();
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl
index 54196df..e036eb9 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn determinant(mat<3, 3, f32>) -> f32
 fn determinant_2b62ba() -> f32{
   var res: f32 = determinant(mat3x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_2b62ba();
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.dxc.hlsl
index c23578a..442a02d 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_2b62ba() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_2b62ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.fxc.hlsl
index c23578a..442a02d 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_2b62ba() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_2b62ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.glsl
index bf77859..0db7cf6 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_2b62ba() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_2b62ba() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.wgsl
index 845c7db..79cde35 100644
--- a/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/2b62ba.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn determinant_2b62ba() -> f32 {
   var res : f32 = determinant(mat3x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_2b62ba();
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl
index cbf55c4..74ca6fe 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn determinant(mat<4, 4, f16>) -> f16
 fn determinant_32bfde() -> f16{
   var res: f16 = determinant(mat4x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_32bfde();
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.dxc.hlsl
index 60b0461..6bb7a04 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t determinant_32bfde() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, determinant_32bfde());
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.glsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.glsl
index 20336be..db4ea42 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_32bfde() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_32bfde() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.wgsl
index a6560c0..6cc513d8 100644
--- a/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/32bfde.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn determinant_32bfde() -> f16 {
   var res : f16 = determinant(mat4x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_32bfde();
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl
index e189c1a..7fb8a95 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn determinant(mat<4, 4, f32>) -> f32
 fn determinant_a0a87c() -> f32{
   var res: f32 = determinant(mat4x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_a0a87c();
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.dxc.hlsl
index e0d82de..fefa5e2 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_a0a87c() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_a0a87c()));
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.fxc.hlsl
index e0d82de..fefa5e2 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_a0a87c() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_a0a87c()));
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.glsl
index 4100458..0270e1c 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_a0a87c() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_a0a87c() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.wgsl
index 8ceaaa7..cc48481 100644
--- a/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/a0a87c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn determinant_a0a87c() -> f32 {
   var res : f32 = determinant(mat4x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_a0a87c();
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl
index 746a4a0..203aec9 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn determinant(mat<3, 3, f16>) -> f16
 fn determinant_d7c86f() -> f16{
   var res: f16 = determinant(mat3x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_d7c86f();
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.dxc.hlsl
index d71c424..dbdacaa 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t determinant_d7c86f() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.glsl
index 319c151..f85bac5 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_d7c86f() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_d7c86f() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.wgsl
index 7d50b8a..e12bc20 100644
--- a/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/d7c86f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn determinant_d7c86f() -> f16 {
   var res : f16 = determinant(mat3x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_d7c86f();
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl
index 6593d4c..77823fe 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn determinant(mat<2, 2, f32>) -> f32
 fn determinant_e19305() -> f32{
   var res: f32 = determinant(mat2x2<f32>(1.f, 1.f, 1.f, 1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_e19305();
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.dxc.hlsl
index 261a60a..ac39458 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_e19305() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_e19305()));
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.fxc.hlsl
index 261a60a..ac39458 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_e19305() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_e19305()));
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.glsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.glsl
index 157c371..fb4648d 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_e19305() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_e19305() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.wgsl
index 2597231..4bf8682 100644
--- a/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/e19305.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn determinant_e19305() -> f32 {
   var res : f32 = determinant(mat2x2<f32>(1.0f, 1.0f, 1.0f, 1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_e19305();
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl
index d427bbc..b801c2d 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn determinant(mat<2, 2, f16>) -> f16
 fn determinant_fc12a5() -> f16{
   var res: f16 = determinant(mat2x2<f16>(1.h, 1.h, 1.h, 1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_fc12a5();
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.dxc.hlsl
index 6d8e276..7b7e2d2 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t determinant_fc12a5() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
   return;
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.glsl
index a10ab42..db9593e 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_fc12a5() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_fc12a5() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.wgsl
index aff14ba6..04e4f31 100644
--- a/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/determinant/fc12a5.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn determinant_fc12a5() -> f16 {
   var res : f16 = determinant(mat2x2<f16>(1.0h, 1.0h, 1.0h, 1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_fc12a5();
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl
index 05fdbef..45f486d 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(vec<3, f32>, vec<3, f32>) -> f32
 fn distance_0657d4() -> f32{
   var res: f32 = distance(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_0657d4();
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.dxc.hlsl
index cad920e..8afd8b5 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_0657d4() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_0657d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.fxc.hlsl
index cad920e..8afd8b5 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_0657d4() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_0657d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.glsl
index c9b888c..97a7d0d 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_0657d4() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_0657d4() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.wgsl
index 67c2619..b20f536 100644
--- a/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/0657d4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_0657d4() -> f32 {
   var res : f32 = distance(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_0657d4();
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl
index 3e6145b..fa358df 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(vec<4, f16>, vec<4, f16>) -> f16
 fn distance_7272f3() -> f16{
   var res: f16 = distance(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7272f3();
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.dxc.hlsl
index 3a850e1..872f94b 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_7272f3() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_7272f3());
   return;
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.glsl
index b951381..709d3fc 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7272f3() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7272f3() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.wgsl
index 85c72e0..04d6f28 100644
--- a/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/7272f3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_7272f3() -> f16 {
   var res : f16 = distance(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7272f3();
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl
index 4932e18..9e09c16 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(f16, f16) -> f16
 fn distance_7d201f() -> f16{
   var res: f16 = distance(1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7d201f();
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.dxc.hlsl
index fdb612c..f400ec8 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_7d201f() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_7d201f());
   return;
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.glsl
index a8adde1..9a8d4f5 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7d201f() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7d201f() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.wgsl
index bfd1730..d053b84 100644
--- a/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/7d201f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_7d201f() -> f16 {
   var res : f16 = distance(1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7d201f();
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl
index f549c77..510b3a8 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(vec<2, f16>, vec<2, f16>) -> f16
 fn distance_892a5d() -> f16{
   var res: f16 = distance(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_892a5d();
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.dxc.hlsl
index d7b55a5..1f552b4 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_892a5d() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_892a5d());
   return;
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.glsl
index 13cfbb8..d6d8bef 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_892a5d() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_892a5d() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.wgsl
index 3cff683..f959c1b 100644
--- a/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/892a5d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_892a5d() -> f16 {
   var res : f16 = distance(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_892a5d();
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl
index 4ce4884..b6b5933 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(vec<3, f16>, vec<3, f16>) -> f16
 fn distance_928fa0() -> f16{
   var res: f16 = distance(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_928fa0();
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.dxc.hlsl
index f4f6c22..7a801f4 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_928fa0() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_928fa0());
   return;
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.glsl
index a16e0fe..c1434d1 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_928fa0() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_928fa0() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.wgsl
index ce4b0fc..6f806bd 100644
--- a/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/928fa0.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_928fa0() -> f16 {
   var res : f16 = distance(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_928fa0();
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl
index 8b17695..f31d2c8 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(vec<4, f32>, vec<4, f32>) -> f32
 fn distance_9646ea() -> f32{
   var res: f32 = distance(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_9646ea();
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.dxc.hlsl
index 6c10cfc..0aca87c 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_9646ea() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_9646ea()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.fxc.hlsl
index 6c10cfc..0aca87c 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_9646ea() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_9646ea()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.glsl
index 96b22f4..e1f193d 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_9646ea() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_9646ea() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.wgsl
index bfdee31..dbbb8ab 100644
--- a/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/9646ea.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_9646ea() -> f32 {
   var res : f32 = distance(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_9646ea();
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl
index a7218e0..b28125c 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(vec<2, f32>, vec<2, f32>) -> f32
 fn distance_aa4055() -> f32{
   var res: f32 = distance(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_aa4055();
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.dxc.hlsl
index 1f0a205..e6b7283 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_aa4055() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_aa4055()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.fxc.hlsl
index 1f0a205..e6b7283 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_aa4055() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_aa4055()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.glsl
index 044abb6..1f2f1f5 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_aa4055() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_aa4055() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.wgsl
index 6cbc816..38fa70b 100644
--- a/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/aa4055.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_aa4055() -> f32 {
   var res : f32 = distance(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_aa4055();
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl
index 4103485..ddbf511 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(f32, f32) -> f32
 fn distance_cfed73() -> f32{
   var res: f32 = distance(1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_cfed73();
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.dxc.hlsl
index f8a59a9..9ff93a3 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_cfed73() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_cfed73()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.fxc.hlsl
index f8a59a9..9ff93a3 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_cfed73() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_cfed73()));
   return;
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.glsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.glsl
index 2b811e9..d06ad9c 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_cfed73() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_cfed73() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.wgsl
index b697a99..6890284 100644
--- a/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/distance/cfed73.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_cfed73() -> f32 {
   var res : f32 = distance(1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_cfed73();
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl
index 5e151dc..719c72a 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dot(vec<4, f32>, vec<4, f32>) -> f32
 fn dot_0c577b() -> f32{
   var res: f32 = dot(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_0c577b();
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.dxc.hlsl
index 42af5db..c8c0222 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_0c577b() {
   float res = 4.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_0c577b()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.fxc.hlsl
index 42af5db..c8c0222 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_0c577b() {
   float res = 4.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_0c577b()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.glsl
index 5264c48..962e6d1 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_0c577b() {
   float res = 4.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_0c577b() {
   float res = 4.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.wgsl
index aa4db3e..1287081 100644
--- a/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/0c577b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dot_0c577b() -> f32 {
   var res : f32 = dot(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_0c577b();
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl
index c7b5649..8a1f785 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot(vec<3, u32>, vec<3, u32>) -> u32
 fn dot_7548a0() -> u32{
   var res: u32 = dot(vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_7548a0();
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.dxc.hlsl
index 3bea3e8..f603c3c 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_7548a0() {
   uint res = 3u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_7548a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.fxc.hlsl
index 3bea3e8..f603c3c 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_7548a0() {
   uint res = 3u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_7548a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.glsl
index 9834ded..46f12e9 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_7548a0() {
   uint res = 3u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_7548a0() {
   uint res = 3u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.wgsl
index e9c8570..d161ecf 100644
--- a/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/7548a0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot_7548a0() -> u32 {
   var res : u32 = dot(vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_7548a0();
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl
index 623a293..96c5373 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dot(vec<2, f32>, vec<2, f32>) -> f32
 fn dot_883f0e() -> f32{
   var res: f32 = dot(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_883f0e();
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.dxc.hlsl
index 8874d93..ce5ebf5 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_883f0e() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_883f0e()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.fxc.hlsl
index 8874d93..ce5ebf5 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_883f0e() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_883f0e()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.glsl
index 8338266..3020d54 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_883f0e() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_883f0e() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.wgsl
index b821eba..919c616 100644
--- a/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/883f0e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dot_883f0e() -> f32 {
   var res : f32 = dot(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_883f0e();
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl
index 83261be..ea3f98e 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn dot(vec<3, f16>, vec<3, f16>) -> f16
 fn dot_8e40f1() -> f16{
   var res: f16 = dot(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_8e40f1();
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.dxc.hlsl
index 9a884c4..85da6f5 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t dot_8e40f1() {
   float16_t res = float16_t(3.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, dot_8e40f1());
   return;
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.glsl
index 62bf2e4..42e6d23 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_8e40f1() {
   float16_t res = 3.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_8e40f1() {
   float16_t res = 3.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.wgsl
index 868f88a..69f0fe1 100644
--- a/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/8e40f1.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn dot_8e40f1() -> f16 {
   var res : f16 = dot(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_8e40f1();
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl
index ac0f500..c5193d7 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot(vec<2, u32>, vec<2, u32>) -> u32
 fn dot_97c7ee() -> u32{
   var res: u32 = dot(vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_97c7ee();
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.dxc.hlsl
index 3af745a..d1a2e59 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_97c7ee() {
   uint res = 2u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_97c7ee()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.fxc.hlsl
index 3af745a..d1a2e59 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_97c7ee() {
   uint res = 2u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_97c7ee()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.glsl
index 9ce1b20..9ecdd01 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_97c7ee() {
   uint res = 2u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_97c7ee() {
   uint res = 2u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.wgsl
index f368394..053652b 100644
--- a/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/97c7ee.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot_97c7ee() -> u32 {
   var res : u32 = dot(vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_97c7ee();
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl
index 003e7fc..55eb3ac 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dot(vec<3, f32>, vec<3, f32>) -> f32
 fn dot_ba4246() -> f32{
   var res: f32 = dot(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ba4246();
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.dxc.hlsl
index a2cf6f1..197b486 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_ba4246() {
   float res = 3.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ba4246()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.fxc.hlsl
index a2cf6f1..197b486 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_ba4246() {
   float res = 3.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ba4246()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.glsl
index 5e94c27..d613572c 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_ba4246() {
   float res = 3.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_ba4246() {
   float res = 3.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.wgsl
index ba489c6..3ca1123 100644
--- a/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/ba4246.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dot_ba4246() -> f32 {
   var res : f32 = dot(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ba4246();
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl
index 7a2ec8e..abd55c2 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn dot(vec<2, f16>, vec<2, f16>) -> f16
 fn dot_cd5a04() -> f16{
   var res: f16 = dot(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_cd5a04();
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.dxc.hlsl
index d3788f0..f8a23d1 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t dot_cd5a04() {
   float16_t res = float16_t(2.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, dot_cd5a04());
   return;
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.glsl
index e67009d..2b13fc6 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_cd5a04() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_cd5a04() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.wgsl
index 23a46ad..a2a7587 100644
--- a/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/cd5a04.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn dot_cd5a04() -> f16 {
   var res : f16 = dot(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_cd5a04();
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl
index d1032a5..1ffd93e 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn dot(vec<4, f16>, vec<4, f16>) -> f16
 fn dot_d0d179() -> f16{
   var res: f16 = dot(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_d0d179();
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.dxc.hlsl
index 202258b..cb25edb0 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t dot_d0d179() {
   float16_t res = float16_t(4.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, dot_d0d179());
   return;
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.glsl
index fc417cc..0e1834d 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_d0d179() {
   float16_t res = 4.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_d0d179() {
   float16_t res = 4.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.wgsl
index e0b1bae..5120dad 100644
--- a/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/d0d179.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn dot_d0d179() -> f16 {
   var res : f16 = dot(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_d0d179();
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl
index 972c212..3f49a7c 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot(vec<4, u32>, vec<4, u32>) -> u32
 fn dot_e994c7() -> u32{
   var res: u32 = dot(vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_e994c7();
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.dxc.hlsl
index a5aacfb..2fb11de 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_e994c7() {
   uint res = 4u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_e994c7()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.fxc.hlsl
index a5aacfb..2fb11de 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_e994c7() {
   uint res = 4u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_e994c7()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.glsl
index b6a3d03..d7c8d70 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_e994c7() {
   uint res = 4u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_e994c7() {
   uint res = 4u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.wgsl
index c35bea1..62c7a5a 100644
--- a/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/e994c7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot_e994c7() -> u32 {
   var res : u32 = dot(vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_e994c7();
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl
index d4a0b90..c0aaf66 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot(vec<4, i32>, vec<4, i32>) -> i32
 fn dot_ef6b1d() -> i32{
   var res: i32 = dot(vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ef6b1d();
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.dxc.hlsl
index 20d8eba..8e02359 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_ef6b1d() {
   int res = 4;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ef6b1d()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.fxc.hlsl
index 20d8eba..8e02359 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_ef6b1d() {
   int res = 4;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ef6b1d()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.glsl
index 67a393f..518e07c 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_ef6b1d() {
   int res = 4;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_ef6b1d() {
   int res = 4;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.wgsl
index 543584b..820e162 100644
--- a/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/ef6b1d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot_ef6b1d() -> i32 {
   var res : i32 = dot(vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ef6b1d();
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl
index 049dd50..6c3baed 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot(vec<3, i32>, vec<3, i32>) -> i32
 fn dot_f1312c() -> i32{
   var res: i32 = dot(vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_f1312c();
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.dxc.hlsl
index e0edf3b..f0f9a6e 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_f1312c() {
   int res = 3;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_f1312c()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.fxc.hlsl
index e0edf3b..f0f9a6e 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_f1312c() {
   int res = 3;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_f1312c()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.glsl
index 3ee4aa5..371ecc7 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_f1312c() {
   int res = 3;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_f1312c() {
   int res = 3;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.wgsl
index 4d7bf98..29f57bf 100644
--- a/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/f1312c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot_f1312c() -> i32 {
   var res : i32 = dot(vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_f1312c();
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl
index ed97f0d..33d667b 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot(vec<2, i32>, vec<2, i32>) -> i32
 fn dot_fc5f7c() -> i32{
   var res: i32 = dot(vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_fc5f7c();
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.dxc.hlsl
index 29888fc..a6d67d4 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_fc5f7c() {
   int res = 2;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_fc5f7c()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.fxc.hlsl
index 29888fc..a6d67d4 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_fc5f7c() {
   int res = 2;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_fc5f7c()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.glsl
index 9b69576..535dd54 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_fc5f7c() {
   int res = 2;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_fc5f7c() {
   int res = 2;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.wgsl
index 926df71..de32368 100644
--- a/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot/fc5f7c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot_fc5f7c() -> i32 {
   var res : i32 = dot(vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_fc5f7c();
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl
index 5b1efdc..f8f523c 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 64
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot4I8Packed(u32, u32) -> i32
 fn dot4I8Packed_881e62() -> i32{
   var res: i32 = dot4I8Packed(1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4I8Packed_881e62();
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl
index cd070f2..a965df8 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot4I8Packed_881e62() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl
index cd070f2..a965df8 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot4I8Packed_881e62() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.glsl
index b9beee7..21a8474 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot4I8Packed_881e62() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot4I8Packed_881e62() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.wgsl
index f31813d..a498dc1 100644
--- a/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot4I8Packed/881e62.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot4I8Packed_881e62() -> i32 {
   var res : i32 = dot4I8Packed(1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4I8Packed_881e62();
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl
index 2d7d467..ee9439d 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 64
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot4U8Packed(u32, u32) -> u32
 fn dot4U8Packed_fbed7b() -> u32{
   var res: u32 = dot4U8Packed(1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4U8Packed_fbed7b();
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl
index 1620aa8..0448730 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot4U8Packed_fbed7b() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4U8Packed_fbed7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl
index 1620aa8..0448730 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot4U8Packed_fbed7b() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4U8Packed_fbed7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.glsl
index 56b0b78..d2b57e4 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot4U8Packed_fbed7b() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot4U8Packed_fbed7b() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.wgsl
index ac97e38..a05d847 100644
--- a/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dot4U8Packed/fbed7b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot4U8Packed_fbed7b() -> u32 {
   var res : u32 = dot4U8Packed(1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4U8Packed_fbed7b();
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl
index 9ac25ab..d7bf108 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdx(vec<3, f32>) -> vec<3, f32>
 fn dpdx_0763f7() -> vec3<f32>{
   var res: vec3<f32> = dpdx(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_0763f7();
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.dxc.hlsl
index 9c902b6..20b8d00 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdx_0763f7() {
   float3 res = ddx((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.fxc.hlsl
index 9c902b6..20b8d00 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdx_0763f7() {
   float3 res = ddx((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.glsl
index 7c72b835..b5cba80 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 dpdx_0763f7() {
-  vec3 res = dFdx(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 dpdx_0763f7() {
+  vec3 res = dFdx(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = dpdx_0763f7();
 }
diff --git a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.wgsl
index 9144305..bd0c6f3 100644
--- a/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/0763f7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdx_0763f7() -> vec3<f32> {
   var res : vec3<f32> = dpdx(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_0763f7();
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl
index 4a5991f..3ab8fbf 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdx(vec<2, f32>) -> vec<2, f32>
 fn dpdx_99edb1() -> vec2<f32>{
   var res: vec2<f32> = dpdx(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_99edb1();
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.dxc.hlsl
index a3b19ab..282fe6f 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdx_99edb1() {
   float2 res = ddx((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.fxc.hlsl
index a3b19ab..282fe6f 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdx_99edb1() {
   float2 res = ddx((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.glsl
index b10143c..de3d7c8 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdx_99edb1() {
   vec2 res = dFdx(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_99edb1();
 }
diff --git a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.wgsl
index 73e53c9..1c729c6 100644
--- a/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/99edb1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdx_99edb1() -> vec2<f32> {
   var res : vec2<f32> = dpdx(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_99edb1();
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl
index 2e037ff..1678204 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdx(vec<4, f32>) -> vec<4, f32>
 fn dpdx_c487fa() -> vec4<f32>{
   var res: vec4<f32> = dpdx(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_c487fa();
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.dxc.hlsl
index 16cc64f..6113a60 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdx_c487fa() {
   float4 res = ddx((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.fxc.hlsl
index 16cc64f..6113a60 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdx_c487fa() {
   float4 res = ddx((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.glsl
index b53f22e..7792bd1 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdx_c487fa() {
   vec4 res = dFdx(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_c487fa();
 }
diff --git a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.wgsl
index 8630470..7d79900 100644
--- a/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/c487fa.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdx_c487fa() -> vec4<f32> {
   var res : vec4<f32> = dpdx(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_c487fa();
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl
index babbe9f..47f807f 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdx(f32) -> f32
 fn dpdx_e263de() -> f32{
   var res: f32 = dpdx(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_e263de();
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.dxc.hlsl
index 463c7c7..ce7ded4 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdx_e263de() {
   float res = ddx(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdx_e263de()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.fxc.hlsl
index 463c7c7..ce7ded4 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdx_e263de() {
   float res = ddx(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdx_e263de()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.glsl
index f2bb77b..ce5609a 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdx_e263de() {
   float res = dFdx(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_e263de();
 }
diff --git a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.wgsl
index 217aa82..43e456e 100644
--- a/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdx/e263de.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdx_e263de() -> f32 {
   var res : f32 = dpdx(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_e263de();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl
index cf16c4b1..c449611 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdxCoarse(f32) -> f32
 fn dpdxCoarse_029152() -> f32{
   var res: f32 = dpdxCoarse(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_029152();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.dxc.hlsl
index a36a3a2..41af9bc 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxCoarse_029152() {
   float res = ddx_coarse(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.fxc.hlsl
index a36a3a2..41af9bc 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxCoarse_029152() {
   float res = ddx_coarse(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.glsl
index b1263d4..cd39dc2 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdxCoarse_029152() {
   float res = dFdx(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_029152();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.wgsl
index 49a3e70..f747ecf 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/029152.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdxCoarse_029152() -> f32 {
   var res : f32 = dpdxCoarse(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_029152();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl
index 03ab1a0..c30ec2d 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdxCoarse(vec<2, f32>) -> vec<2, f32>
 fn dpdxCoarse_9581cf() -> vec2<f32>{
   var res: vec2<f32> = dpdxCoarse(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_9581cf();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl
index 0c4487d..e11e0dc 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxCoarse_9581cf() {
   float2 res = ddx_coarse((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl
index 0c4487d..e11e0dc 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxCoarse_9581cf() {
   float2 res = ddx_coarse((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.glsl
index 7adc471..970d634 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdxCoarse_9581cf() {
   vec2 res = dFdx(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_9581cf();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.wgsl
index 1b10ff9..60d30c7 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/9581cf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdxCoarse_9581cf() -> vec2<f32> {
   var res : vec2<f32> = dpdxCoarse(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_9581cf();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl
index 6ccf8b7..823af19 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdxCoarse(vec<4, f32>) -> vec<4, f32>
 fn dpdxCoarse_c28641() -> vec4<f32>{
   var res: vec4<f32> = dpdxCoarse(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_c28641();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl
index ee82e1b..0bd6ad0 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxCoarse_c28641() {
   float4 res = ddx_coarse((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl
index ee82e1b..0bd6ad0 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxCoarse_c28641() {
   float4 res = ddx_coarse((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.glsl
index c09b871..74b93b5 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdxCoarse_c28641() {
   vec4 res = dFdx(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_c28641();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.wgsl
index 1f76d4a..5e40f4c 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/c28641.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdxCoarse_c28641() -> vec4<f32> {
   var res : vec4<f32> = dpdxCoarse(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_c28641();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl
index 687ab81..f2b7165 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdxCoarse(vec<3, f32>) -> vec<3, f32>
 fn dpdxCoarse_f64d7b() -> vec3<f32>{
   var res: vec3<f32> = dpdxCoarse(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_f64d7b();
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl
index 52e7f88..8b4ca8f 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxCoarse_f64d7b() {
   float3 res = ddx_coarse((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl
index 52e7f88..8b4ca8f 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxCoarse_f64d7b() {
   float3 res = ddx_coarse((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.glsl
index 8937578..8dbf58c 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 dpdxCoarse_f64d7b() {
-  vec3 res = dFdx(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 dpdxCoarse_f64d7b() {
+  vec3 res = dFdx(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_f64d7b();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.wgsl
index d25b680..15ee323 100644
--- a/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxCoarse/f64d7b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdxCoarse_f64d7b() -> vec3<f32> {
   var res : vec3<f32> = dpdxCoarse(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_f64d7b();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl
index 79f38a5..5df8fcb 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdxFine(vec<4, f32>) -> vec<4, f32>
 fn dpdxFine_8c5069() -> vec4<f32>{
   var res: vec4<f32> = dpdxFine(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_8c5069();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.dxc.hlsl
index 22ebf0d..895f193 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxFine_8c5069() {
   float4 res = ddx_fine((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.fxc.hlsl
index 22ebf0d..895f193 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxFine_8c5069() {
   float4 res = ddx_fine((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.glsl
index f07e06c..ac30cd4 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdxFine_8c5069() {
   vec4 res = dFdx(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_8c5069();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.wgsl
index 35f5590..5ec73db 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/8c5069.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdxFine_8c5069() -> vec4<f32> {
   var res : vec4<f32> = dpdxFine(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_8c5069();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl
index a88386c..b96cd40 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdxFine(vec<2, f32>) -> vec<2, f32>
 fn dpdxFine_9631de() -> vec2<f32>{
   var res: vec2<f32> = dpdxFine(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_9631de();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.dxc.hlsl
index 149f675..aafce76 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxFine_9631de() {
   float2 res = ddx_fine((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.fxc.hlsl
index 149f675..aafce76 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxFine_9631de() {
   float2 res = ddx_fine((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.glsl
index 3fb5da7..153edef 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdxFine_9631de() {
   vec2 res = dFdx(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_9631de();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.wgsl
index 8e12eb4..d935dc3 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/9631de.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdxFine_9631de() -> vec2<f32> {
   var res : vec2<f32> = dpdxFine(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_9631de();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl
index 766822d..3607b95 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdxFine(f32) -> f32
 fn dpdxFine_f401a2() -> f32{
   var res: f32 = dpdxFine(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f401a2();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.dxc.hlsl
index 680bab9..70ed040 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxFine_f401a2() {
   float res = ddx_fine(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.fxc.hlsl
index 680bab9..70ed040 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxFine_f401a2() {
   float res = ddx_fine(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.glsl
index c413400..4a4b964 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdxFine_f401a2() {
   float res = dFdx(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_f401a2();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.wgsl
index b89c1ac..f3d4d50 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f401a2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdxFine_f401a2() -> f32 {
   var res : f32 = dpdxFine(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f401a2();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl
index 42ed65c..a272087 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdxFine(vec<3, f32>) -> vec<3, f32>
 fn dpdxFine_f92fb6() -> vec3<f32>{
   var res: vec3<f32> = dpdxFine(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f92fb6();
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl
index eefe894..9473166 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxFine_f92fb6() {
   float3 res = ddx_fine((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl
index eefe894..9473166 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxFine_f92fb6() {
   float3 res = ddx_fine((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.glsl
index 3e3d152..cd31a55 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 dpdxFine_f92fb6() {
-  vec3 res = dFdx(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 dpdxFine_f92fb6() {
+  vec3 res = dFdx(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = dpdxFine_f92fb6();
 }
diff --git a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.wgsl
index e2943b0..2327214 100644
--- a/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdxFine/f92fb6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdxFine_f92fb6() -> vec3<f32> {
   var res : vec3<f32> = dpdxFine(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f92fb6();
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl
index 513b021..baa958e 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdy(vec<4, f32>) -> vec<4, f32>
 fn dpdy_699a05() -> vec4<f32>{
   var res: vec4<f32> = dpdy(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_699a05();
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.dxc.hlsl
index d4ec445..b87e1f7 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdy_699a05() {
   float4 res = ddy((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdy_699a05()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.fxc.hlsl
index d4ec445..b87e1f7 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdy_699a05() {
   float4 res = ddy((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdy_699a05()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.glsl
index ce49234..d7b7f16 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdy_699a05() {
   vec4 res = dFdy(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_699a05();
 }
diff --git a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.wgsl
index 3e57f42..0392e12 100644
--- a/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/699a05.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdy_699a05() -> vec4<f32> {
   var res : vec4<f32> = dpdy(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_699a05();
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl
index 5404b78..2da903b 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdy(f32) -> f32
 fn dpdy_7f8d84() -> f32{
   var res: f32 = dpdy(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_7f8d84();
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.dxc.hlsl
index 03f3a7b..e2a4d33 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdy_7f8d84() {
   float res = ddy(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.fxc.hlsl
index 03f3a7b..e2a4d33 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdy_7f8d84() {
   float res = ddy(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.glsl
index e5dc510..65c7401 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdy_7f8d84() {
   float res = dFdy(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_7f8d84();
 }
diff --git a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.wgsl
index c9b0260..52e512f 100644
--- a/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/7f8d84.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdy_7f8d84() -> f32 {
   var res : f32 = dpdy(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_7f8d84();
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl
index 59424ee..6bf1423 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdy(vec<2, f32>) -> vec<2, f32>
 fn dpdy_a8b56e() -> vec2<f32>{
   var res: vec2<f32> = dpdy(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_a8b56e();
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.dxc.hlsl
index fa347a3..54874c9 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdy_a8b56e() {
   float2 res = ddy((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.fxc.hlsl
index fa347a3..54874c9 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdy_a8b56e() {
   float2 res = ddy((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.glsl
index f2013ab..36fbbfe 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdy_a8b56e() {
   vec2 res = dFdy(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_a8b56e();
 }
diff --git a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.wgsl
index e70ee15..4075a7a 100644
--- a/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/a8b56e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdy_a8b56e() -> vec2<f32> {
   var res : vec2<f32> = dpdy(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_a8b56e();
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl
index 2e3cb82..ae0f1f8 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdy(vec<3, f32>) -> vec<3, f32>
 fn dpdy_feb40f() -> vec3<f32>{
   var res: vec3<f32> = dpdy(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_feb40f();
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.dxc.hlsl
index b662f29..3393d64 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdy_feb40f() {
   float3 res = ddy((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.fxc.hlsl
index b662f29..3393d64 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdy_feb40f() {
   float3 res = ddy((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.glsl
index f487724..4b42582 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 dpdy_feb40f() {
-  vec3 res = dFdy(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 dpdy_feb40f() {
+  vec3 res = dFdy(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = dpdy_feb40f();
 }
diff --git a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.wgsl
index d5b2b93..85aecd2 100644
--- a/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdy/feb40f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdy_feb40f() -> vec3<f32> {
   var res : vec3<f32> = dpdy(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_feb40f();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl
index e60a0df..429c59c 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdyCoarse(vec<2, f32>) -> vec<2, f32>
 fn dpdyCoarse_3e1ab4() -> vec2<f32>{
   var res: vec2<f32> = dpdyCoarse(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_3e1ab4();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl
index ea22d46..bb50f3d 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyCoarse_3e1ab4() {
   float2 res = ddy_coarse((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl
index ea22d46..bb50f3d 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyCoarse_3e1ab4() {
   float2 res = ddy_coarse((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.glsl
index 6d8e15d..101431a 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdyCoarse_3e1ab4() {
   vec2 res = dFdy(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_3e1ab4();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
index 4504f87..d43b7fa 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdyCoarse_3e1ab4() -> vec2<f32> {
   var res : vec2<f32> = dpdyCoarse(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_3e1ab4();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl
index 3f91eeb..b105dce 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdyCoarse(vec<4, f32>) -> vec<4, f32>
 fn dpdyCoarse_445d24() -> vec4<f32>{
   var res: vec4<f32> = dpdyCoarse(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_445d24();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl
index 0f318dd..9ad4982 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyCoarse_445d24() {
   float4 res = ddy_coarse((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl
index 0f318dd..9ad4982 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyCoarse_445d24() {
   float4 res = ddy_coarse((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.glsl
index 5db006e..5503b81 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdyCoarse_445d24() {
   vec4 res = dFdy(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_445d24();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.wgsl
index 55fd601..ad62a2f 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/445d24.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdyCoarse_445d24() -> vec4<f32> {
   var res : vec4<f32> = dpdyCoarse(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_445d24();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl
index fa981f1..94bd74b 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdyCoarse(f32) -> f32
 fn dpdyCoarse_870a7e() -> f32{
   var res: f32 = dpdyCoarse(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_870a7e();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl
index f9c0457..d3e6cb4 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyCoarse_870a7e() {
   float res = ddy_coarse(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl
index f9c0457..d3e6cb4 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyCoarse_870a7e() {
   float res = ddy_coarse(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.glsl
index 60b4555..12f8237 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdyCoarse_870a7e() {
   float res = dFdy(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_870a7e();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.wgsl
index 7604aa4..60038ef 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/870a7e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdyCoarse_870a7e() -> f32 {
   var res : f32 = dpdyCoarse(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_870a7e();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl
index 19664a5..5a8d062 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdyCoarse(vec<3, f32>) -> vec<3, f32>
 fn dpdyCoarse_ae1873() -> vec3<f32>{
   var res: vec3<f32> = dpdyCoarse(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_ae1873();
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl
index eaf7d94..cf0cf61 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyCoarse_ae1873() {
   float3 res = ddy_coarse((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl
index eaf7d94..cf0cf61 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyCoarse_ae1873() {
   float3 res = ddy_coarse((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.glsl
index ec3c29a..21b9cb5 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 dpdyCoarse_ae1873() {
-  vec3 res = dFdy(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 dpdyCoarse_ae1873() {
+  vec3 res = dFdy(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_ae1873();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.wgsl
index 870c2ec..87092ec 100644
--- a/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyCoarse/ae1873.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdyCoarse_ae1873() -> vec3<f32> {
   var res : vec3<f32> = dpdyCoarse(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_ae1873();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl
index 1f1cf84..8979190 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdyFine(vec<3, f32>) -> vec<3, f32>
 fn dpdyFine_1fb7ab() -> vec3<f32>{
   var res: vec3<f32> = dpdyFine(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_1fb7ab();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl
index c871bbf..31c408f 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyFine_1fb7ab() {
   float3 res = ddy_fine((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl
index c871bbf..31c408f 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyFine_1fb7ab() {
   float3 res = ddy_fine((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.glsl
index 43214f2..183f984 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 dpdyFine_1fb7ab() {
-  vec3 res = dFdy(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 dpdyFine_1fb7ab() {
+  vec3 res = dFdy(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = dpdyFine_1fb7ab();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.wgsl
index c004fd6..4691c0a 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/1fb7ab.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdyFine_1fb7ab() -> vec3<f32> {
   var res : vec3<f32> = dpdyFine(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_1fb7ab();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl
index 169ec4b..74712b4 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdyFine(f32) -> f32
 fn dpdyFine_6eb673() -> f32{
   var res: f32 = dpdyFine(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_6eb673();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.dxc.hlsl
index 2d539c9..079f752 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyFine_6eb673() {
   float res = ddy_fine(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.fxc.hlsl
index 2d539c9..079f752 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyFine_6eb673() {
   float res = ddy_fine(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.glsl
index 78a9441..30f9cbf 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdyFine_6eb673() {
   float res = dFdy(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_6eb673();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.wgsl
index 158787a..f466ff4 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/6eb673.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdyFine_6eb673() -> f32 {
   var res : f32 = dpdyFine(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_6eb673();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl
index 1b3b661..b48bfb1 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdyFine(vec<4, f32>) -> vec<4, f32>
 fn dpdyFine_d0a648() -> vec4<f32>{
   var res: vec4<f32> = dpdyFine(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_d0a648();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.dxc.hlsl
index ccb2db5..d91a3e6 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyFine_d0a648() {
   float4 res = ddy_fine((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.fxc.hlsl
index ccb2db5..d91a3e6 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyFine_d0a648() {
   float4 res = ddy_fine((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.glsl
index 9002ceb..bac085d 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdyFine_d0a648() {
   vec4 res = dFdy(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_d0a648();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.wgsl
index b31d6ef..c179688 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/d0a648.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdyFine_d0a648() -> vec4<f32> {
   var res : vec4<f32> = dpdyFine(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_d0a648();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl
index a2199a2..dac25c1 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdyFine(vec<2, f32>) -> vec<2, f32>
 fn dpdyFine_df33aa() -> vec2<f32>{
   var res: vec2<f32> = dpdyFine(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_df33aa();
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.dxc.hlsl
index 5ab652e..4267c3c 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyFine_df33aa() {
   float2 res = ddy_fine((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.fxc.hlsl
index 5ab652e..4267c3c 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyFine_df33aa() {
   float2 res = ddy_fine((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.glsl
index d34169c..43436bf 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdyFine_df33aa() {
   vec2 res = dFdy(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_df33aa();
 }
diff --git a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.wgsl
index acfdd4a..876473f 100644
--- a/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/dpdyFine/df33aa.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdyFine_df33aa() -> vec2<f32> {
   var res : vec2<f32> = dpdyFine(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_df33aa();
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl
index 4b316a1..a0151dd 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn exp(vec<4, f32>) -> vec<4, f32>
 fn exp_0f70eb() -> vec4<f32>{
   var res: vec4<f32> = exp(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_0f70eb();
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl
index ff63de3..6a85316 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp_0f70eb() {
   float4 res = (2.71828174591064453125f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp_0f70eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl
index ff63de3..6a85316 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp_0f70eb() {
   float4 res = (2.71828174591064453125f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp_0f70eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl
index d2ae9b7..6511e6f 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp_0f70eb() {
   vec4 res = vec4(2.71828174591064453125f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp_0f70eb() {
   vec4 res = vec4(2.71828174591064453125f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.wgsl
index a98a0b9..700ab6f 100644
--- a/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/0f70eb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn exp_0f70eb() -> vec4<f32> {
   var res : vec4<f32> = exp(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_0f70eb();
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl
index 0c12608..66162e5 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn exp(vec<3, f16>) -> vec<3, f16>
 fn exp_13806d() -> vec3<f16>{
   var res: vec3<f16> = exp(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_13806d();
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.dxc.hlsl
index 08306e3..0707bc5 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> exp_13806d() {
   vector<float16_t, 3> res = (float16_t(2.716796875h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
   return;
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.glsl
index 3674da3..bbfbbdb 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp_13806d() {
   f16vec3 res = f16vec3(2.716796875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp_13806d() {
   f16vec3 res = f16vec3(2.716796875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.wgsl
index aaa94f5..a4c1923 100644
--- a/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/13806d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn exp_13806d() -> vec3<f16> {
   var res : vec3<f16> = exp(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_13806d();
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl
index 051528a..07fb83e 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn exp(vec<2, f32>) -> vec<2, f32>
 fn exp_1951e7() -> vec2<f32>{
   var res: vec2<f32> = exp(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_1951e7();
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl
index 2b449e7..2792b75 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp_1951e7() {
   float2 res = (2.71828174591064453125f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp_1951e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl
index 2b449e7..2792b75 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp_1951e7() {
   float2 res = (2.71828174591064453125f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp_1951e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl
index c9cd888..8e20bb8 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp_1951e7() {
   vec2 res = vec2(2.71828174591064453125f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp_1951e7() {
   vec2 res = vec2(2.71828174591064453125f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.wgsl
index 3cd69d9..2e834e6 100644
--- a/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/1951e7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn exp_1951e7() -> vec2<f32> {
   var res : vec2<f32> = exp(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_1951e7();
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl
index 01ad2b1..1d51f8a 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn exp(vec<2, f16>) -> vec<2, f16>
 fn exp_2e08e2() -> vec2<f16>{
   var res: vec2<f16> = exp(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_2e08e2();
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.dxc.hlsl
index 12a4a4e..2340625 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> exp_2e08e2() {
   vector<float16_t, 2> res = (float16_t(2.716796875h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
   return;
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.glsl
index 160b81f..be37955 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp_2e08e2() {
   f16vec2 res = f16vec2(2.716796875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp_2e08e2() {
   f16vec2 res = f16vec2(2.716796875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.wgsl
index 87f7dcd..53050ef 100644
--- a/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/2e08e2.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn exp_2e08e2() -> vec2<f16> {
   var res : vec2<f16> = exp(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_2e08e2();
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl
index 87ee041..cb36605 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn exp(vec<4, f16>) -> vec<4, f16>
 fn exp_611a87() -> vec4<f16>{
   var res: vec4<f16> = exp(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_611a87();
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.dxc.hlsl
index c03ce42..ee2ee4d 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> exp_611a87() {
   vector<float16_t, 4> res = (float16_t(2.716796875h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
   return;
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.glsl
index 7c2855e..28891ed 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp_611a87() {
   f16vec4 res = f16vec4(2.716796875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp_611a87() {
   f16vec4 res = f16vec4(2.716796875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.wgsl
index 5fbea88..b349740 100644
--- a/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/611a87.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn exp_611a87() -> vec4<f16> {
   var res : vec4<f16> = exp(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_611a87();
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl
index c28dad3..f38b687 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn exp(f32) -> f32
 fn exp_771fd2() -> f32{
   var res: f32 = exp(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_771fd2();
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl
index 47d79d3..e5890f4 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp_771fd2() {
   float res = 2.71828174591064453125f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp_771fd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl
index 47d79d3..e5890f4 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp_771fd2() {
   float res = 2.71828174591064453125f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp_771fd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl
index 713e93b..c7f2eb1 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp_771fd2() {
   float res = 2.71828174591064453125f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp_771fd2() {
   float res = 2.71828174591064453125f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.wgsl
index a75093a..94f6f02 100644
--- a/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/771fd2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn exp_771fd2() -> f32 {
   var res : f32 = exp(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_771fd2();
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl
index 9d25f1b..e62c822 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn exp(f16) -> f16
 fn exp_c18fe9() -> f16{
   var res: f16 = exp(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_c18fe9();
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.dxc.hlsl
index 8857b46..d41c0a7 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t exp_c18fe9() {
   float16_t res = float16_t(2.716796875h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, exp_c18fe9());
   return;
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.glsl
index 3745a2c..efaf317 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp_c18fe9() {
   float16_t res = 2.716796875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp_c18fe9() {
   float16_t res = 2.716796875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.wgsl
index 27dc256..4eb9ef0 100644
--- a/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/c18fe9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn exp_c18fe9() -> f16 {
   var res : f16 = exp(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_c18fe9();
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl
index ceac4d0..37ed234 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn exp(vec<3, f32>) -> vec<3, f32>
 fn exp_d98450() -> vec3<f32>{
   var res: vec3<f32> = exp(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_d98450();
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl
index 724374e..1468482 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp_d98450() {
   float3 res = (2.71828174591064453125f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp_d98450()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl
index 724374e..1468482 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp_d98450() {
   float3 res = (2.71828174591064453125f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp_d98450()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl
index 2006a7e..045105a 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 exp_d98450() {
-  vec3 res = vec3(2.71828174591064453125f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 exp_d98450() {
+  vec3 res = vec3(2.71828174591064453125f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 exp_d98450() {
-  vec3 res = vec3(2.71828174591064453125f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 exp_d98450() {
+  vec3 res = vec3(2.71828174591064453125f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.wgsl
index 0c7a6ab..2afaf22 100644
--- a/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp/d98450.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn exp_d98450() -> vec3<f32> {
   var res : vec3<f32> = exp(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_d98450();
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl
index cb0b1cd..934009b 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn exp2(vec<2, f16>) -> vec<2, f16>
 fn exp2_151a4c() -> vec2<f16>{
   var res: vec2<f16> = exp2(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_151a4c();
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.dxc.hlsl
index 0e67676..099f21f 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> exp2_151a4c() {
   vector<float16_t, 2> res = (float16_t(2.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.glsl
index 5cb369d..a621903 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp2_151a4c() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp2_151a4c() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.wgsl
index 62ca075..caa24c0 100644
--- a/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/151a4c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn exp2_151a4c() -> vec2<f16> {
   var res : vec2<f16> = exp2(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_151a4c();
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl
index bde8d96..a959927 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn exp2(vec<3, f32>) -> vec<3, f32>
 fn exp2_1f8680() -> vec3<f32>{
   var res: vec3<f32> = exp2(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_1f8680();
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.dxc.hlsl
index f452ba1..0f6b0ab 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp2_1f8680() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp2_1f8680()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.fxc.hlsl
index f452ba1..0f6b0ab 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp2_1f8680() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp2_1f8680()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.glsl
index f18f112..efc3a6b 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 exp2_1f8680() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 exp2_1f8680() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 exp2_1f8680() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 exp2_1f8680() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.wgsl
index b593fab..80aedda 100644
--- a/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/1f8680.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn exp2_1f8680() -> vec3<f32> {
   var res : vec3<f32> = exp2(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_1f8680();
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl
index 8d2ce44..79a03b4 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn exp2(vec<3, f16>) -> vec<3, f16>
 fn exp2_751377() -> vec3<f16>{
   var res: vec3<f16> = exp2(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_751377();
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.dxc.hlsl
index c2690ba..6fe1d57 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> exp2_751377() {
   vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.glsl
index d93e4e8..f829ae9 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp2_751377() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp2_751377() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.wgsl
index 9498f71..a3f51ff 100644
--- a/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/751377.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn exp2_751377() -> vec3<f16> {
   var res : vec3<f16> = exp2(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_751377();
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl
index 3d6e02d..fb0a09f 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn exp2(vec<4, f32>) -> vec<4, f32>
 fn exp2_a9d0a7() -> vec4<f32>{
   var res: vec4<f32> = exp2(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_a9d0a7();
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.dxc.hlsl
index 88e5819..775a9e7 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp2_a9d0a7() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.fxc.hlsl
index 88e5819..775a9e7 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp2_a9d0a7() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.glsl
index 1207282..64e51df 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp2_a9d0a7() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp2_a9d0a7() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.wgsl
index 4ecac1d..2c6cd32 100644
--- a/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/a9d0a7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn exp2_a9d0a7() -> vec4<f32> {
   var res : vec4<f32> = exp2(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_a9d0a7();
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl
index 7df5319..0903f52 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn exp2(f16) -> f16
 fn exp2_b408e4() -> f16{
   var res: f16 = exp2(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_b408e4();
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.dxc.hlsl
index 4e7f6ac..1b53562 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t exp2_b408e4() {
   float16_t res = float16_t(2.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, exp2_b408e4());
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.glsl
index e50264c..d69f869 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp2_b408e4() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp2_b408e4() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.wgsl
index c705d93..4e818b9 100644
--- a/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/b408e4.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn exp2_b408e4() -> f16 {
   var res : f16 = exp2(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_b408e4();
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl
index d3d4e5b..2948907 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn exp2(vec<2, f32>) -> vec<2, f32>
 fn exp2_d6777c() -> vec2<f32>{
   var res: vec2<f32> = exp2(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_d6777c();
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.dxc.hlsl
index 4efacd8..623d6e2 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp2_d6777c() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp2_d6777c()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.fxc.hlsl
index 4efacd8..623d6e2 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp2_d6777c() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp2_d6777c()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.glsl
index 55acd79..c6175f8 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp2_d6777c() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp2_d6777c() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.wgsl
index 163512c..be1e6f5 100644
--- a/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/d6777c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn exp2_d6777c() -> vec2<f32> {
   var res : vec2<f32> = exp2(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_d6777c();
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl
index 3c149f7..90dff00 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn exp2(f32) -> f32
 fn exp2_dea523() -> f32{
   var res: f32 = exp2(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_dea523();
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.dxc.hlsl
index 14912e5..1f15639 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp2_dea523() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp2_dea523()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.fxc.hlsl
index 14912e5..1f15639 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp2_dea523() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp2_dea523()));
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.glsl
index 0900acb..9d3565c 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp2_dea523() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp2_dea523() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.wgsl
index 6b2e505..f719351 100644
--- a/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/dea523.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn exp2_dea523() -> f32 {
   var res : f32 = exp2(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_dea523();
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl
index 0114749..46d2086 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn exp2(vec<4, f16>) -> vec<4, f16>
 fn exp2_ffa827() -> vec4<f16>{
   var res: vec4<f16> = exp2(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_ffa827();
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.dxc.hlsl
index f3db63f..27ad9f4 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> exp2_ffa827() {
   vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
   return;
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.glsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.glsl
index cef841b..c750376 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp2_ffa827() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp2_ffa827() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.wgsl
index 1151ef1..a114369 100644
--- a/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/exp2/ffa827.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn exp2_ffa827() -> vec4<f16> {
   var res : vec4<f16> = exp2(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_ffa827();
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl
index 12d2495..8c91d19 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn extractBits(vec<3, u32>, u32, u32) -> vec<3, u32>
 fn extractBits_12b197() -> vec3<u32>{
   var res: vec3<u32> = extractBits(vec3<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_12b197();
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.dxc.hlsl
index 38403f5..d613b47 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 extractBits_12b197() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_12b197()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.fxc.hlsl
index 38403f5..d613b47 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 extractBits_12b197() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_12b197()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.glsl
index 49a8e20..fffa8ab 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 extractBits_12b197() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 extractBits_12b197() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 extractBits_12b197() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 extractBits_12b197() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.wgsl
index ae0964d..e92ea32 100644
--- a/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/12b197.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn extractBits_12b197() -> vec3<u32> {
   var res : vec3<u32> = extractBits(vec3<u32>(1u), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_12b197();
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl
index 7326d6e..710c0fe 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn extractBits(i32, u32, u32) -> i32
 fn extractBits_249874() -> i32{
   var res: i32 = extractBits(1i, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_249874();
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.dxc.hlsl
index 2360d55..a0ff016 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int extractBits_249874() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_249874()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.fxc.hlsl
index 2360d55..a0ff016 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int extractBits_249874() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_249874()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.glsl
index 3d8706b..ae6b7c9 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int extractBits_249874() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int extractBits_249874() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.wgsl
index c0458f1..ddb6d36 100644
--- a/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/249874.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn extractBits_249874() -> i32 {
   var res : i32 = extractBits(1i, 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_249874();
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl
index 2a33d4f..6d6334e 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn extractBits(vec<4, u32>, u32, u32) -> vec<4, u32>
 fn extractBits_631377() -> vec4<u32>{
   var res: vec4<u32> = extractBits(vec4<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_631377();
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.dxc.hlsl
index 7bf62b2..4ac78a6 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 extractBits_631377() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_631377()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.fxc.hlsl
index 7bf62b2..4ac78a6 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 extractBits_631377() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_631377()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.glsl
index fbddb2c..00d0777 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 extractBits_631377() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 extractBits_631377() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.wgsl
index 54e9eab..dd09419 100644
--- a/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/631377.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn extractBits_631377() -> vec4<u32> {
   var res : vec4<u32> = extractBits(vec4<u32>(1u), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_631377();
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl
index c2d3cdd..1cb7e76 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn extractBits(vec<2, i32>, u32, u32) -> vec<2, i32>
 fn extractBits_a99a8d() -> vec2<i32>{
   var res: vec2<i32> = extractBits(vec2<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_a99a8d();
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.dxc.hlsl
index bed9e74..2e98c66 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 extractBits_a99a8d() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.fxc.hlsl
index bed9e74..2e98c66 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 extractBits_a99a8d() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.glsl
index cb82c95..336bccc 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 extractBits_a99a8d() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 extractBits_a99a8d() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.wgsl
index 1c68867..049ecd0 100644
--- a/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/a99a8d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn extractBits_a99a8d() -> vec2<i32> {
   var res : vec2<i32> = extractBits(vec2<i32>(1i), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_a99a8d();
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl
index 465a2bc..7bc34be 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn extractBits(u32, u32, u32) -> u32
 fn extractBits_ce81f8() -> u32{
   var res: u32 = extractBits(1u, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_ce81f8();
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.dxc.hlsl
index 5f42ee8..97312a9 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint extractBits_ce81f8() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_ce81f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.fxc.hlsl
index 5f42ee8..97312a9 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint extractBits_ce81f8() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_ce81f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.glsl
index 9287582..904a400 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint extractBits_ce81f8() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint extractBits_ce81f8() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.wgsl
index fc070ab..d1647e7 100644
--- a/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/ce81f8.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn extractBits_ce81f8() -> u32 {
   var res : u32 = extractBits(1u, 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_ce81f8();
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl
index c893a78..06c7224 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn extractBits(vec<3, i32>, u32, u32) -> vec<3, i32>
 fn extractBits_e04f5d() -> vec3<i32>{
   var res: vec3<i32> = extractBits(vec3<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_e04f5d();
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.dxc.hlsl
index 502f33b..52e3d94 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 extractBits_e04f5d() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.fxc.hlsl
index 502f33b..52e3d94 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 extractBits_e04f5d() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.glsl
index 8df27a2..64fa5cd 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 extractBits_e04f5d() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 extractBits_e04f5d() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 extractBits_e04f5d() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 extractBits_e04f5d() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.wgsl
index 4dbf577..b08f735 100644
--- a/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/e04f5d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn extractBits_e04f5d() -> vec3<i32> {
   var res : vec3<i32> = extractBits(vec3<i32>(1i), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_e04f5d();
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl
index 9a6d978..a7e8ce3 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn extractBits(vec<2, u32>, u32, u32) -> vec<2, u32>
 fn extractBits_f28f69() -> vec2<u32>{
   var res: vec2<u32> = extractBits(vec2<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_f28f69();
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.dxc.hlsl
index 8dafe28..149c202 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 extractBits_f28f69() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_f28f69()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.fxc.hlsl
index 8dafe28..149c202 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 extractBits_f28f69() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_f28f69()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.glsl
index 276b997..4285b86 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 extractBits_f28f69() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 extractBits_f28f69() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.wgsl
index ac6740d..4b0b9ee 100644
--- a/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/f28f69.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn extractBits_f28f69() -> vec2<u32> {
   var res : vec2<u32> = extractBits(vec2<u32>(1u), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_f28f69();
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl
index 4ee45c9..56a84bd 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn extractBits(vec<4, i32>, u32, u32) -> vec<4, i32>
 fn extractBits_fb850f() -> vec4<i32>{
   var res: vec4<i32> = extractBits(vec4<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_fb850f();
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.dxc.hlsl
index 49be6e8..d7b4b50 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 extractBits_fb850f() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.fxc.hlsl
index 49be6e8..d7b4b50 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 extractBits_fb850f() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
   return;
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.glsl
index f63f604..0bc4b19 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 extractBits_fb850f() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 extractBits_fb850f() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.wgsl
index f51054f..5ac710c 100644
--- a/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/extractBits/fb850f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn extractBits_fb850f() -> vec4<i32> {
   var res : vec4<i32> = extractBits(vec4<i32>(1i), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_fb850f();
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl
index 6535ea5..6fce3cc 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn faceForward(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn faceForward_524986() -> vec3<f16>{
   var res: vec3<f16> = faceForward(vec3<f16>(1.h), vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_524986();
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.dxc.hlsl
index 5dabdcb..a582603 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> faceForward_524986() {
   vector<float16_t, 3> res = (float16_t(-1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.glsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.glsl
index ab1029b..569f6f3 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 faceForward_524986() {
   f16vec3 res = f16vec3(-1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 faceForward_524986() {
   f16vec3 res = f16vec3(-1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.wgsl
index 51e1292..c968d55 100644
--- a/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/524986.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn faceForward_524986() -> vec3<f16> {
   var res : vec3<f16> = faceForward(vec3<f16>(1.0h), vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_524986();
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl
index 50f29a3..bcd4266 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn faceForward(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn faceForward_5afbd5() -> vec3<f32>{
   var res: vec3<f32> = faceForward(vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_5afbd5();
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.dxc.hlsl
index 04f82af..735428d 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 faceForward_5afbd5() {
   float3 res = (-1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.fxc.hlsl
index 04f82af..735428d 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 faceForward_5afbd5() {
   float3 res = (-1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.glsl
index 5948345..d7bc457 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 faceForward_5afbd5() {
-  vec3 res = vec3(-1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 faceForward_5afbd5() {
+  vec3 res = vec3(-1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 faceForward_5afbd5() {
-  vec3 res = vec3(-1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 faceForward_5afbd5() {
+  vec3 res = vec3(-1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.wgsl
index edc5eeb..057d9dc 100644
--- a/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/5afbd5.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn faceForward_5afbd5() -> vec3<f32> {
   var res : vec3<f32> = faceForward(vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_5afbd5();
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl
index 3857b13..4457a30 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn faceForward(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn faceForward_b316e5() -> vec4<f32>{
   var res: vec4<f32> = faceForward(vec4<f32>(1.f), vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_b316e5();
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.dxc.hlsl
index a75e38c..e4e1942 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 faceForward_b316e5() {
   float4 res = (-1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.fxc.hlsl
index a75e38c..e4e1942 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 faceForward_b316e5() {
   float4 res = (-1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.glsl
index d5a6626..3791f34 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 faceForward_b316e5() {
   vec4 res = vec4(-1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 faceForward_b316e5() {
   vec4 res = vec4(-1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.wgsl
index 0070d72..e216946 100644
--- a/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/b316e5.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn faceForward_b316e5() -> vec4<f32> {
   var res : vec4<f32> = faceForward(vec4<f32>(1.0f), vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_b316e5();
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl
index b056ef1..21558ab 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn faceForward(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn faceForward_cc63dc() -> vec4<f16>{
   var res: vec4<f16> = faceForward(vec4<f16>(1.h), vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_cc63dc();
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.dxc.hlsl
index a200f59..2808396 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> faceForward_cc63dc() {
   vector<float16_t, 4> res = (float16_t(-1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.glsl
index 54b93ce..b48dfb0 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 faceForward_cc63dc() {
   f16vec4 res = f16vec4(-1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 faceForward_cc63dc() {
   f16vec4 res = f16vec4(-1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.wgsl
index a5f54bb..61e7e8e 100644
--- a/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/cc63dc.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn faceForward_cc63dc() -> vec4<f16> {
   var res : vec4<f16> = faceForward(vec4<f16>(1.0h), vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_cc63dc();
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl
index 138fa21..b6801a6 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn faceForward(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn faceForward_e6908b() -> vec2<f32>{
   var res: vec2<f32> = faceForward(vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_e6908b();
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.dxc.hlsl
index 048a279..590a08c 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 faceForward_e6908b() {
   float2 res = (-1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.fxc.hlsl
index 048a279..590a08c 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 faceForward_e6908b() {
   float2 res = (-1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.glsl
index fdef82b..ba501b7 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 faceForward_e6908b() {
   vec2 res = vec2(-1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 faceForward_e6908b() {
   vec2 res = vec2(-1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.wgsl
index 8251d1c..14a4033 100644
--- a/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/e6908b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn faceForward_e6908b() -> vec2<f32> {
   var res : vec2<f32> = faceForward(vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_e6908b();
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl
index c89e420..c11feae 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn faceForward(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn faceForward_fb0f2e() -> vec2<f16>{
   var res: vec2<f16> = faceForward(vec2<f16>(1.h), vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_fb0f2e();
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.dxc.hlsl
index 4491269..220c3f7 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> faceForward_fb0f2e() {
   vector<float16_t, 2> res = (float16_t(-1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
   return;
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.glsl
index 480dcc2..d9daabc 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 faceForward_fb0f2e() {
   f16vec2 res = f16vec2(-1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 faceForward_fb0f2e() {
   f16vec2 res = f16vec2(-1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.wgsl
index e130337..6537811 100644
--- a/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/faceForward/fb0f2e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn faceForward_fb0f2e() -> vec2<f16> {
   var res : vec2<f16> = faceForward(vec2<f16>(1.0h), vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_fb0f2e();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl
index 0ec0e55..292174f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn firstLeadingBit(vec<4, u32>) -> vec<4, u32>
 fn firstLeadingBit_000ff3() -> vec4<u32>{
   var res: vec4<u32> = firstLeadingBit(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_000ff3();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl
index 262fc1f..cb56c9f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstLeadingBit_000ff3() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_000ff3()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl
index 262fc1f..cb56c9f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstLeadingBit_000ff3() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_000ff3()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.glsl
index fdc576a..ecfcd5b 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstLeadingBit_000ff3() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstLeadingBit_000ff3() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.wgsl
index fb9589a..026b2ca 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/000ff3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn firstLeadingBit_000ff3() -> vec4<u32> {
   var res : vec4<u32> = firstLeadingBit(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_000ff3();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl
index 1a5a924..580f091 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn firstLeadingBit(vec<3, i32>) -> vec<3, i32>
 fn firstLeadingBit_35053e() -> vec3<i32>{
   var res: vec3<i32> = firstLeadingBit(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_35053e();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl
index 0a9634b..abe339f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstLeadingBit_35053e() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl
index 0a9634b..abe339f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstLeadingBit_35053e() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.glsl
index fd9ed32..e388a93 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 firstLeadingBit_35053e() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 firstLeadingBit_35053e() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 firstLeadingBit_35053e() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 firstLeadingBit_35053e() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.wgsl
index bf69851..4fcaac9 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/35053e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn firstLeadingBit_35053e() -> vec3<i32> {
   var res : vec3<i32> = firstLeadingBit(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_35053e();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl
index e2d50bb..b075945 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn firstLeadingBit(vec<3, u32>) -> vec<3, u32>
 fn firstLeadingBit_3fd7d0() -> vec3<u32>{
   var res: vec3<u32> = firstLeadingBit(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_3fd7d0();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl
index db5bd34..1b45a7a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstLeadingBit_3fd7d0() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_3fd7d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl
index db5bd34..1b45a7a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstLeadingBit_3fd7d0() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_3fd7d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.glsl
index 08face9..c4bcbf2 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 firstLeadingBit_3fd7d0() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 firstLeadingBit_3fd7d0() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 firstLeadingBit_3fd7d0() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 firstLeadingBit_3fd7d0() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
index f35497f..71a0356 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn firstLeadingBit_3fd7d0() -> vec3<u32> {
   var res : vec3<u32> = firstLeadingBit(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_3fd7d0();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl
index e124fe0..5db8309 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn firstLeadingBit(i32) -> i32
 fn firstLeadingBit_57a1a3() -> i32{
   var res: i32 = firstLeadingBit(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_57a1a3();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl
index 0207a7a..cfc4248 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstLeadingBit_57a1a3() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl
index 0207a7a..cfc4248 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstLeadingBit_57a1a3() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.glsl
index 01dcc48..7d6ec34 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstLeadingBit_57a1a3() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstLeadingBit_57a1a3() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.wgsl
index f2720c8..93664c3 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/57a1a3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn firstLeadingBit_57a1a3() -> i32 {
   var res : i32 = firstLeadingBit(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_57a1a3();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl
index d525a58..e381f16 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn firstLeadingBit(vec<2, u32>) -> vec<2, u32>
 fn firstLeadingBit_6fe804() -> vec2<u32>{
   var res: vec2<u32> = firstLeadingBit(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_6fe804();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl
index 43f52d1..b97f1ba 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstLeadingBit_6fe804() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_6fe804()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl
index 43f52d1..b97f1ba 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstLeadingBit_6fe804() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_6fe804()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.glsl
index 1b3c13e..55bf670 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstLeadingBit_6fe804() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstLeadingBit_6fe804() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.wgsl
index 8414318..e363e8c 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/6fe804.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn firstLeadingBit_6fe804() -> vec2<u32> {
   var res : vec2<u32> = firstLeadingBit(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_6fe804();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl
index a4cf7e6..56e8e82 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn firstLeadingBit(vec<2, i32>) -> vec<2, i32>
 fn firstLeadingBit_a622c2() -> vec2<i32>{
   var res: vec2<i32> = firstLeadingBit(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_a622c2();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl
index f725fbe..075e5cc 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstLeadingBit_a622c2() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl
index f725fbe..075e5cc 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstLeadingBit_a622c2() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.glsl
index f05fca3..9fa369a 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstLeadingBit_a622c2() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstLeadingBit_a622c2() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.wgsl
index 31de02e..560c9d3 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/a622c2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn firstLeadingBit_a622c2() -> vec2<i32> {
   var res : vec2<i32> = firstLeadingBit(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_a622c2();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl
index 5089928..2881e8c 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn firstLeadingBit(vec<4, i32>) -> vec<4, i32>
 fn firstLeadingBit_c1f940() -> vec4<i32>{
   var res: vec4<i32> = firstLeadingBit(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_c1f940();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl
index 268f7e4..8796f48 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstLeadingBit_c1f940() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl
index 268f7e4..8796f48 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstLeadingBit_c1f940() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.glsl
index 28c2130..3f3ac1f 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstLeadingBit_c1f940() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstLeadingBit_c1f940() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.wgsl
index bfddeb1..5d00777 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/c1f940.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn firstLeadingBit_c1f940() -> vec4<i32> {
   var res : vec4<i32> = firstLeadingBit(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_c1f940();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl
index af8c781..3cc4816 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn firstLeadingBit(u32) -> u32
 fn firstLeadingBit_f0779d() -> u32{
   var res: u32 = firstLeadingBit(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_f0779d();
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl
index 2ffe8af..11843ce 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstLeadingBit_f0779d() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_f0779d()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl
index 2ffe8af..11843ce 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstLeadingBit_f0779d() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_f0779d()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.glsl
index f049b63..a0417d4 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstLeadingBit_f0779d() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstLeadingBit_f0779d() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.wgsl
index a97725d..ead82cd 100644
--- a/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstLeadingBit/f0779d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn firstLeadingBit_f0779d() -> u32 {
   var res : u32 = firstLeadingBit(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_f0779d();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl
index 52ea77a..f314a80 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn firstTrailingBit(vec<4, u32>) -> vec<4, u32>
 fn firstTrailingBit_110f2c() -> vec4<u32>{
   var res: vec4<u32> = firstTrailingBit(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_110f2c();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl
index 6ba19cf..fd851fb 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstTrailingBit_110f2c() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_110f2c()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl
index 6ba19cf..fd851fb 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstTrailingBit_110f2c() {
   uint4 res = (0u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_110f2c()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.glsl
index 5bb7bf3..365b960 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstTrailingBit_110f2c() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstTrailingBit_110f2c() {
   uvec4 res = uvec4(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.wgsl
index 517dcb0..af9da7f 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/110f2c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn firstTrailingBit_110f2c() -> vec4<u32> {
   var res : vec4<u32> = firstTrailingBit(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_110f2c();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl
index e6faca7..d6dbdaf 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn firstTrailingBit(i32) -> i32
 fn firstTrailingBit_3a2acc() -> i32{
   var res: i32 = firstTrailingBit(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_3a2acc();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl
index 04929b7..86b53e8 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstTrailingBit_3a2acc() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl
index 04929b7..86b53e8 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstTrailingBit_3a2acc() {
   int res = 0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.glsl
index f8bb77e..1eb5e87 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstTrailingBit_3a2acc() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstTrailingBit_3a2acc() {
   int res = 0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.wgsl
index ee53f79..4b341cc 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/3a2acc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn firstTrailingBit_3a2acc() -> i32 {
   var res : i32 = firstTrailingBit(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_3a2acc();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl
index 0e9fec9..424a63a 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn firstTrailingBit(vec<2, u32>) -> vec<2, u32>
 fn firstTrailingBit_45eb10() -> vec2<u32>{
   var res: vec2<u32> = firstTrailingBit(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_45eb10();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl
index e5e8cbb..afb9ebf 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstTrailingBit_45eb10() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_45eb10()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl
index e5e8cbb..afb9ebf 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstTrailingBit_45eb10() {
   uint2 res = (0u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_45eb10()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.glsl
index a598f05..e7dcd8f 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstTrailingBit_45eb10() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstTrailingBit_45eb10() {
   uvec2 res = uvec2(0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.wgsl
index e7f14b1..2537935 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/45eb10.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn firstTrailingBit_45eb10() -> vec2<u32> {
   var res : vec2<u32> = firstTrailingBit(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_45eb10();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl
index 7421b05..2c30a17 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn firstTrailingBit(u32) -> u32
 fn firstTrailingBit_47d475() -> u32{
   var res: u32 = firstTrailingBit(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_47d475();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl
index 36a8220..5d7b442 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstTrailingBit_47d475() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_47d475()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl
index 36a8220..5d7b442 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstTrailingBit_47d475() {
   uint res = 0u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_47d475()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.glsl
index 16f5190..7dce171 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstTrailingBit_47d475() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstTrailingBit_47d475() {
   uint res = 0u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.wgsl
index 37f6c58..116b9e0 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/47d475.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn firstTrailingBit_47d475() -> u32 {
   var res : u32 = firstTrailingBit(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_47d475();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl
index 5d0fb73..ce0dbbc 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn firstTrailingBit(vec<2, i32>) -> vec<2, i32>
 fn firstTrailingBit_50c072() -> vec2<i32>{
   var res: vec2<i32> = firstTrailingBit(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_50c072();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl
index 1d692ff..eed8973 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstTrailingBit_50c072() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl
index 1d692ff..eed8973 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstTrailingBit_50c072() {
   int2 res = (0).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.glsl
index fcb167f..580cad1 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstTrailingBit_50c072() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstTrailingBit_50c072() {
   ivec2 res = ivec2(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.wgsl
index 26fa32d..0749fae 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/50c072.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn firstTrailingBit_50c072() -> vec2<i32> {
   var res : vec2<i32> = firstTrailingBit(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_50c072();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl
index 736b6d8..f13648c 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn firstTrailingBit(vec<3, i32>) -> vec<3, i32>
 fn firstTrailingBit_7496d6() -> vec3<i32>{
   var res: vec3<i32> = firstTrailingBit(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_7496d6();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl
index 7a3e546..49ba329 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstTrailingBit_7496d6() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl
index 7a3e546..49ba329 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstTrailingBit_7496d6() {
   int3 res = (0).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.glsl
index d03c4f9..15b49d5 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 firstTrailingBit_7496d6() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 firstTrailingBit_7496d6() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 firstTrailingBit_7496d6() {
-  ivec3 res = ivec3(0);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 firstTrailingBit_7496d6() {
+  ivec3 res = ivec3(0);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.wgsl
index 8a1bdee..2c80290 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/7496d6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn firstTrailingBit_7496d6() -> vec3<i32> {
   var res : vec3<i32> = firstTrailingBit(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_7496d6();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl
index 0f47e8a..2cf46ae 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn firstTrailingBit(vec<4, i32>) -> vec<4, i32>
 fn firstTrailingBit_86551b() -> vec4<i32>{
   var res: vec4<i32> = firstTrailingBit(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_86551b();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl
index 4735f44..9ccbb5d 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstTrailingBit_86551b() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl
index 4735f44..9ccbb5d 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstTrailingBit_86551b() {
   int4 res = (0).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.glsl
index 7202096..0a8f001 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstTrailingBit_86551b() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstTrailingBit_86551b() {
   ivec4 res = ivec4(0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.wgsl
index ac6828c..27bfd5e 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/86551b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn firstTrailingBit_86551b() -> vec4<i32> {
   var res : vec4<i32> = firstTrailingBit(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_86551b();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl
index 9116bb7..39f6afe 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn firstTrailingBit(vec<3, u32>) -> vec<3, u32>
 fn firstTrailingBit_cb51ce() -> vec3<u32>{
   var res: vec3<u32> = firstTrailingBit(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_cb51ce();
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl
index 5625c51..ab9d977 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstTrailingBit_cb51ce() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_cb51ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl
index 5625c51..ab9d977 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstTrailingBit_cb51ce() {
   uint3 res = (0u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_cb51ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.glsl
index 0ec53fb..52735d7 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 firstTrailingBit_cb51ce() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 firstTrailingBit_cb51ce() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 firstTrailingBit_cb51ce() {
-  uvec3 res = uvec3(0u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 firstTrailingBit_cb51ce() {
+  uvec3 res = uvec3(0u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.wgsl
index ad4381a..5080201 100644
--- a/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/firstTrailingBit/cb51ce.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn firstTrailingBit_cb51ce() -> vec3<u32> {
   var res : vec3<u32> = firstTrailingBit(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_cb51ce();
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl
index b2c65dc..fae647e 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn floor(vec<3, f16>) -> vec<3, f16>
 fn floor_3802c0() -> vec3<f16>{
   var res: vec3<f16> = floor(vec3<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3802c0();
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.dxc.hlsl
index e1ec2c0..a6edfab 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> floor_3802c0() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
   return;
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.glsl
index a654024..334a2cd 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 floor_3802c0() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 floor_3802c0() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.wgsl
index 739b5b8..a4fe44a 100644
--- a/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/3802c0.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn floor_3802c0() -> vec3<f16> {
   var res : vec3<f16> = floor(vec3<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3802c0();
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl
index 1a93842..ba71478 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn floor(vec<4, f32>) -> vec<4, f32>
 fn floor_3bccc4() -> vec4<f32>{
   var res: vec4<f32> = floor(vec4<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3bccc4();
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.dxc.hlsl
index b0eb0d5..b994753 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 floor_3bccc4() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(floor_3bccc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.fxc.hlsl
index b0eb0d5..b994753 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 floor_3bccc4() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(floor_3bccc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.glsl
index 4b209af..8b0349e 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 floor_3bccc4() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 floor_3bccc4() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.wgsl
index 7aa1f04..14688f6 100644
--- a/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/3bccc4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn floor_3bccc4() -> vec4<f32> {
   var res : vec4<f32> = floor(vec4<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3bccc4();
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl
index dc0d143..c4ade61 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn floor(vec<2, f32>) -> vec<2, f32>
 fn floor_5fc9ac() -> vec2<f32>{
   var res: vec2<f32> = floor(vec2<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_5fc9ac();
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.dxc.hlsl
index 95ced87..24e7c5d 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 floor_5fc9ac() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.fxc.hlsl
index 95ced87..24e7c5d 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 floor_5fc9ac() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.glsl
index a3538f9..c082c35 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 floor_5fc9ac() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 floor_5fc9ac() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.wgsl
index b744e5c..e3ed160 100644
--- a/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/5fc9ac.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn floor_5fc9ac() -> vec2<f32> {
   var res : vec2<f32> = floor(vec2<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_5fc9ac();
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl
index be11379..3dae964 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn floor(vec<3, f32>) -> vec<3, f32>
 fn floor_60d7ea() -> vec3<f32>{
   var res: vec3<f32> = floor(vec3<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_60d7ea();
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.dxc.hlsl
index 3c60441..3d93579 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 floor_60d7ea() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(floor_60d7ea()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.fxc.hlsl
index 3c60441..3d93579 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 floor_60d7ea() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(floor_60d7ea()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.glsl
index d260d49..10822bb 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 floor_60d7ea() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 floor_60d7ea() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 floor_60d7ea() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 floor_60d7ea() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.wgsl
index 3988c9e..4cb2489 100644
--- a/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/60d7ea.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn floor_60d7ea() -> vec3<f32> {
   var res : vec3<f32> = floor(vec3<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_60d7ea();
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl
index 647ccd0..85e89bc 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn floor(f32) -> f32
 fn floor_66f154() -> f32{
   var res: f32 = floor(1.5f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_66f154();
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.dxc.hlsl
index e7c8415..7e7706f 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float floor_66f154() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(floor_66f154()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.fxc.hlsl
index e7c8415..7e7706f 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float floor_66f154() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(floor_66f154()));
   return;
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.glsl
index 0702579..d7ecdef 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float floor_66f154() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float floor_66f154() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.wgsl
index c2c04c2..6e37cad 100644
--- a/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/66f154.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn floor_66f154() -> f32 {
   var res : f32 = floor(1.5f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_66f154();
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl
index f0b2a91..40cb734 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn floor(vec<2, f16>) -> vec<2, f16>
 fn floor_84658c() -> vec2<f16>{
   var res: vec2<f16> = floor(vec2<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_84658c();
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.dxc.hlsl
index 4b7a3e1..1e6794c 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> floor_84658c() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
   return;
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.glsl
index 2289267..5fe7ddd 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 floor_84658c() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 floor_84658c() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.wgsl
index eca687f..992490d4 100644
--- a/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/84658c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn floor_84658c() -> vec2<f16> {
   var res : vec2<f16> = floor(vec2<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_84658c();
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl
index b8c475f..9f14857 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn floor(vec<4, f16>) -> vec<4, f16>
 fn floor_a2d31b() -> vec4<f16>{
   var res: vec4<f16> = floor(vec4<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_a2d31b();
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.dxc.hlsl
index 171d7a1..2d36071 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> floor_a2d31b() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
   return;
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.glsl
index 428bf26..c07f1e0 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 floor_a2d31b() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 floor_a2d31b() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.wgsl
index 391e36d..3fcb244 100644
--- a/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/a2d31b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn floor_a2d31b() -> vec4<f16> {
   var res : vec4<f16> = floor(vec4<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_a2d31b();
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl
index 5577b1f..baff432 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn floor(f16) -> f16
 fn floor_b6e09c() -> f16{
   var res: f16 = floor(1.5h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_b6e09c();
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.dxc.hlsl
index b1869a3..7a90ed7 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t floor_b6e09c() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, floor_b6e09c());
   return;
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.glsl
index 16b65aa..257cc18 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t floor_b6e09c() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t floor_b6e09c() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.wgsl
index 83df4b3..aa392ad 100644
--- a/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/floor/b6e09c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn floor_b6e09c() -> f16 {
   var res : f16 = floor(1.5h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_b6e09c();
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl
index fb2655f..c933cf2 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fma(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn fma_26a7a9() -> vec2<f32>{
   var res: vec2<f32> = fma(vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_26a7a9();
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.dxc.hlsl
index 8866573..4806648 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fma_26a7a9() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fma_26a7a9()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.fxc.hlsl
index 8866573..4806648 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fma_26a7a9() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fma_26a7a9()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.glsl
index 9c0bb43..26a8bd2 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fma_26a7a9() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fma_26a7a9() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.wgsl
index 341e88f..f84bd4b 100644
--- a/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/26a7a9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fma_26a7a9() -> vec2<f32> {
   var res : vec2<f32> = fma(vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_26a7a9();
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl
index 360848d..72d8542 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fma(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn fma_6a3283() -> vec4<f32>{
   var res: vec4<f32> = fma(vec4<f32>(1.f), vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_6a3283();
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.dxc.hlsl
index b3c2977..3c15568 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fma_6a3283() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fma_6a3283()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.fxc.hlsl
index b3c2977..3c15568 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fma_6a3283() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fma_6a3283()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.glsl
index 2b1b8d1..bb48f0c 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fma_6a3283() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fma_6a3283() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.wgsl
index 3d1cc66..4cc0297 100644
--- a/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/6a3283.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fma_6a3283() -> vec4<f32> {
   var res : vec4<f32> = fma(vec4<f32>(1.0f), vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_6a3283();
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl
index 4b647e8..eee984c 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn fma(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn fma_ab7818() -> vec4<f16>{
   var res: vec4<f16> = fma(vec4<f16>(1.h), vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_ab7818();
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.dxc.hlsl
index 5a9163e..20f4726 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> fma_ab7818() {
   vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
   return;
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.glsl
index e19d732..28b64cc 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fma_ab7818() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fma_ab7818() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.wgsl
index 96a3441..aecd294 100644
--- a/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/ab7818.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn fma_ab7818() -> vec4<f16> {
   var res : vec4<f16> = fma(vec4<f16>(1.0h), vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_ab7818();
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl
index d0e7b1b..7007f10 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn fma(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn fma_bf21b6() -> vec2<f16>{
   var res: vec2<f16> = fma(vec2<f16>(1.h), vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_bf21b6();
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.dxc.hlsl
index 9ebeb7a..efc90a9 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> fma_bf21b6() {
   vector<float16_t, 2> res = (float16_t(2.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
   return;
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.glsl
index db2fae2..13e048a 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fma_bf21b6() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fma_bf21b6() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.wgsl
index b50eeb8..dd6dba3 100644
--- a/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/bf21b6.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn fma_bf21b6() -> vec2<f16> {
   var res : vec2<f16> = fma(vec2<f16>(1.0h), vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_bf21b6();
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl
index 1678c59..4adf175 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fma(f32, f32, f32) -> f32
 fn fma_c10ba3() -> f32{
   var res: f32 = fma(1.f, 1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c10ba3();
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.dxc.hlsl
index 540f5e5..f141c7b 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fma_c10ba3() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fma_c10ba3()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.fxc.hlsl
index 540f5e5..f141c7b 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fma_c10ba3() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fma_c10ba3()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.glsl
index 130e8c0..d5340c4 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fma_c10ba3() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fma_c10ba3() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.wgsl
index 6fa99b3..90d1342 100644
--- a/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/c10ba3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fma_c10ba3() -> f32 {
   var res : f32 = fma(1.0f, 1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c10ba3();
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl
index 33de60a..2730f85 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn fma(f16, f16, f16) -> f16
 fn fma_c8abb3() -> f16{
   var res: f16 = fma(1.h, 1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c8abb3();
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.dxc.hlsl
index 05dc2bf..3d42376 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t fma_c8abb3() {
   float16_t res = float16_t(2.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, fma_c8abb3());
   return;
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.glsl
index eb5db8b..cb736e1 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fma_c8abb3() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fma_c8abb3() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.wgsl
index 29fc0df..7885273 100644
--- a/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/c8abb3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn fma_c8abb3() -> f16 {
   var res : f16 = fma(1.0h, 1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c8abb3();
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl
index 8a6e1ae..54330c8 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fma(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn fma_e17c5c() -> vec3<f32>{
   var res: vec3<f32> = fma(vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e17c5c();
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.dxc.hlsl
index dacd604..897205b 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fma_e17c5c() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fma_e17c5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.fxc.hlsl
index dacd604..897205b 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fma_e17c5c() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fma_e17c5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.glsl
index 9e6fcfd..12c5f98 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 fma_e17c5c() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fma_e17c5c() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 fma_e17c5c() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fma_e17c5c() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.wgsl
index 703bffb..4ee4940 100644
--- a/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/e17c5c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fma_e17c5c() -> vec3<f32> {
   var res : vec3<f32> = fma(vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e17c5c();
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl
index b69e5b8..2e27b2e 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn fma(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn fma_e7abdc() -> vec3<f16>{
   var res: vec3<f16> = fma(vec3<f16>(1.h), vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e7abdc();
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.dxc.hlsl
index e060605..1fb4bf5 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> fma_e7abdc() {
   vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
   return;
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.glsl
index 12e53e1..ed9f9e2 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fma_e7abdc() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fma_e7abdc() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.wgsl
index 0e5247a..1a03d2b 100644
--- a/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fma/e7abdc.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn fma_e7abdc() -> vec3<f16> {
   var res : vec3<f16> = fma(vec3<f16>(1.0h), vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e7abdc();
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl
index 7b7d045..c504165 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn fract(vec<2, f16>) -> vec<2, f16>
 fn fract_181aa9() -> vec2<f16>{
   var res: vec2<f16> = fract(vec2<f16>(1.25h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_181aa9();
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.dxc.hlsl
index c34d56a..8a1623a 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> fract_181aa9() {
   vector<float16_t, 2> res = (float16_t(0.25h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
   return;
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.glsl
index fa76bf2..1413ae7 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fract_181aa9() {
   f16vec2 res = f16vec2(0.25hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fract_181aa9() {
   f16vec2 res = f16vec2(0.25hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.wgsl
index 8a47f16..6773e3a 100644
--- a/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/181aa9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn fract_181aa9() -> vec2<f16> {
   var res : vec2<f16> = fract(vec2<f16>(1.25h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_181aa9();
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl
index 45852c1..0266aaa 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn fract(vec<4, f16>) -> vec<4, f16>
 fn fract_498c77() -> vec4<f16>{
   var res: vec4<f16> = fract(vec4<f16>(1.25h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_498c77();
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.dxc.hlsl
index 352efa4..3be67cd 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> fract_498c77() {
   vector<float16_t, 4> res = (float16_t(0.25h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
   return;
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.glsl
index e481b0c..1183918 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fract_498c77() {
   f16vec4 res = f16vec4(0.25hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fract_498c77() {
   f16vec4 res = f16vec4(0.25hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.wgsl
index 6c0ef47..45c67a0 100644
--- a/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/498c77.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn fract_498c77() -> vec4<f16> {
   var res : vec4<f16> = fract(vec4<f16>(1.25h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_498c77();
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl
index 30bb57b..664c17a 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fract(vec<4, f32>) -> vec<4, f32>
 fn fract_8bc1e9() -> vec4<f32>{
   var res: vec4<f32> = fract(vec4<f32>(1.25f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_8bc1e9();
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.dxc.hlsl
index a1fbcb0..ab698ab 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fract_8bc1e9() {
   float4 res = (0.25f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.fxc.hlsl
index a1fbcb0..ab698ab 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fract_8bc1e9() {
   float4 res = (0.25f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.glsl
index 3fd0d27..242dd84 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fract_8bc1e9() {
   vec4 res = vec4(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fract_8bc1e9() {
   vec4 res = vec4(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.wgsl
index 221cc67..e6e69b5 100644
--- a/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/8bc1e9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fract_8bc1e9() -> vec4<f32> {
   var res : vec4<f32> = fract(vec4<f32>(1.25f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_8bc1e9();
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl
index 3dffa91..6f33887 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fract(vec<2, f32>) -> vec<2, f32>
 fn fract_943cb1() -> vec2<f32>{
   var res: vec2<f32> = fract(vec2<f32>(1.25f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_943cb1();
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.dxc.hlsl
index 72a1f8b..f49092f 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fract_943cb1() {
   float2 res = (0.25f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fract_943cb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.fxc.hlsl
index 72a1f8b..f49092f 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fract_943cb1() {
   float2 res = (0.25f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fract_943cb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.glsl
index 29f51ed..f317365 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fract_943cb1() {
   vec2 res = vec2(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fract_943cb1() {
   vec2 res = vec2(0.25f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.wgsl
index 08cabad..c5e3fed 100644
--- a/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/943cb1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fract_943cb1() -> vec2<f32> {
   var res : vec2<f32> = fract(vec2<f32>(1.25f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_943cb1();
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl
index 0f7454d..6446c88 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn fract(vec<3, f16>) -> vec<3, f16>
 fn fract_958a1d() -> vec3<f16>{
   var res: vec3<f16> = fract(vec3<f16>(1.25h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_958a1d();
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.dxc.hlsl
index d77c259..28d92bd 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> fract_958a1d() {
   vector<float16_t, 3> res = (float16_t(0.25h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
   return;
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.glsl
index 7417320..b6856a5 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fract_958a1d() {
   f16vec3 res = f16vec3(0.25hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fract_958a1d() {
   f16vec3 res = f16vec3(0.25hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.wgsl
index a10142e..293fdb9 100644
--- a/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/958a1d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn fract_958a1d() -> vec3<f16> {
   var res : vec3<f16> = fract(vec3<f16>(1.25h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_958a1d();
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl
index 8bfa0da..f7a681b 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fract(vec<3, f32>) -> vec<3, f32>
 fn fract_a49758() -> vec3<f32>{
   var res: vec3<f32> = fract(vec3<f32>(1.25f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_a49758();
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.dxc.hlsl
index d7e56d8..9dda1e5 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fract_a49758() {
   float3 res = (0.25f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fract_a49758()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.fxc.hlsl
index d7e56d8..9dda1e5 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fract_a49758() {
   float3 res = (0.25f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fract_a49758()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.glsl
index 9461949..3ac2920 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 fract_a49758() {
-  vec3 res = vec3(0.25f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fract_a49758() {
+  vec3 res = vec3(0.25f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 fract_a49758() {
-  vec3 res = vec3(0.25f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fract_a49758() {
+  vec3 res = vec3(0.25f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.wgsl
index 9bab877..cf1e2c1 100644
--- a/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/a49758.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fract_a49758() -> vec3<f32> {
   var res : vec3<f32> = fract(vec3<f32>(1.25f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_a49758();
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl
index b10020e..a822164 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn fract(f16) -> f16
 fn fract_eb38ce() -> f16{
   var res: f16 = fract(1.25h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_eb38ce();
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.dxc.hlsl
index 0c6d4a3..c4da513 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t fract_eb38ce() {
   float16_t res = float16_t(0.25h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, fract_eb38ce());
   return;
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.glsl
index 72920d3..c121e71 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fract_eb38ce() {
   float16_t res = 0.25hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fract_eb38ce() {
   float16_t res = 0.25hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.wgsl
index a6e8d6c..b96d1af 100644
--- a/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/eb38ce.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn fract_eb38ce() -> f16 {
   var res : f16 = fract(1.25h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_eb38ce();
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl
index 1297dd4..05e9196 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fract(f32) -> f32
 fn fract_fa5c71() -> f32{
   var res: f32 = fract(1.25f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_fa5c71();
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.dxc.hlsl
index 779fdb4..cfcb146 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fract_fa5c71() {
   float res = 0.25f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fract_fa5c71()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.fxc.hlsl
index 779fdb4..cfcb146 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fract_fa5c71() {
   float res = 0.25f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fract_fa5c71()));
   return;
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.glsl
index 0394d49..0059f07 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fract_fa5c71() {
   float res = 0.25f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fract_fa5c71() {
   float res = 0.25f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.wgsl
index c66acae..064539e 100644
--- a/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fract/fa5c71.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fract_fa5c71() -> f32 {
   var res : f32 = fract(1.25f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_fa5c71();
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl
index 3112b5f..3a39daa 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fwidth(vec<3, f32>) -> vec<3, f32>
 fn fwidth_5d1b39() -> vec3<f32>{
   var res: vec3<f32> = fwidth(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_5d1b39();
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.dxc.hlsl
index 4d1a577..f71314f 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidth_5d1b39() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.fxc.hlsl
index 4d1a577..f71314f 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidth_5d1b39() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.glsl
index 71e87f3..62425a7 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 fwidth_5d1b39() {
-  vec3 res = fwidth(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fwidth_5d1b39() {
+  vec3 res = fwidth(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = fwidth_5d1b39();
 }
diff --git a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.wgsl
index 4daf93a..c3e3e96 100644
--- a/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/5d1b39.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fwidth_5d1b39() -> vec3<f32> {
   var res : vec3<f32> = fwidth(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_5d1b39();
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl
index a69b21f..20fc1c9 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fwidth(vec<2, f32>) -> vec<2, f32>
 fn fwidth_b83ebb() -> vec2<f32>{
   var res: vec2<f32> = fwidth(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_b83ebb();
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.dxc.hlsl
index adb7815..d40b3e7 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidth_b83ebb() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.fxc.hlsl
index adb7815..d40b3e7 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidth_b83ebb() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.glsl
index e526164..284173c 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fwidth_b83ebb() {
   vec2 res = fwidth(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_b83ebb();
 }
diff --git a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.wgsl
index e5ae3cf..296df68 100644
--- a/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/b83ebb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fwidth_b83ebb() -> vec2<f32> {
   var res : vec2<f32> = fwidth(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_b83ebb();
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl
index 7bd4fa2..ac14e8d 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fwidth(vec<4, f32>) -> vec<4, f32>
 fn fwidth_d2ab9a() -> vec4<f32>{
   var res: vec4<f32> = fwidth(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_d2ab9a();
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.dxc.hlsl
index 8c69006..c96624e 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidth_d2ab9a() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.fxc.hlsl
index 8c69006..c96624e 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidth_d2ab9a() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.glsl
index 3cc7364..3097ec2 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fwidth_d2ab9a() {
   vec4 res = fwidth(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_d2ab9a();
 }
diff --git a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.wgsl
index 73111ff..cf67be5 100644
--- a/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/d2ab9a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fwidth_d2ab9a() -> vec4<f32> {
   var res : vec4<f32> = fwidth(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_d2ab9a();
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl
index b245ec6..b27258a 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fwidth(f32) -> f32
 fn fwidth_df38ef() -> f32{
   var res: f32 = fwidth(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_df38ef();
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.dxc.hlsl
index 47d7cbb..2c25c64 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidth_df38ef() {
   float res = fwidth(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidth_df38ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.fxc.hlsl
index 47d7cbb..2c25c64 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidth_df38ef() {
   float res = fwidth(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidth_df38ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.glsl
index ad59c9a..522931d 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fwidth_df38ef() {
   float res = fwidth(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_df38ef();
 }
diff --git a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.wgsl
index 94f797a..a60279e 100644
--- a/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidth/df38ef.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fwidth_df38ef() -> f32 {
   var res : f32 = fwidth(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_df38ef();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl
index e3186b3..16e385b 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fwidthCoarse(f32) -> f32
 fn fwidthCoarse_159c8a() -> f32{
   var res: f32 = fwidthCoarse(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_159c8a();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl
index 42aed08..38cfb3a 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthCoarse_159c8a() {
   float res = fwidth(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl
index 42aed08..38cfb3a 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthCoarse_159c8a() {
   float res = fwidth(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.glsl
index 5d0b567..eb18c29 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fwidthCoarse_159c8a() {
   float res = fwidth(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_159c8a();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.wgsl
index 636cc34..01f28c0 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/159c8a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fwidthCoarse_159c8a() -> f32 {
   var res : f32 = fwidthCoarse(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_159c8a();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl
index b95616e..4c250e1 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fwidthCoarse(vec<3, f32>) -> vec<3, f32>
 fn fwidthCoarse_1e59d9() -> vec3<f32>{
   var res: vec3<f32> = fwidthCoarse(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_1e59d9();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl
index d26d798..2b9193a 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthCoarse_1e59d9() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl
index d26d798..2b9193a 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthCoarse_1e59d9() {
   float3 res = fwidth((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.glsl
index fea4f3d..0505f1f 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 fwidthCoarse_1e59d9() {
-  vec3 res = fwidth(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fwidthCoarse_1e59d9() {
+  vec3 res = fwidth(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_1e59d9();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.wgsl
index eceb6cf..00e4220 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/1e59d9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fwidthCoarse_1e59d9() -> vec3<f32> {
   var res : vec3<f32> = fwidthCoarse(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_1e59d9();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl
index 5580f09d..3b8f370 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fwidthCoarse(vec<4, f32>) -> vec<4, f32>
 fn fwidthCoarse_4e4fc4() -> vec4<f32>{
   var res: vec4<f32> = fwidthCoarse(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_4e4fc4();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl
index 330eb42..55bf8de 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthCoarse_4e4fc4() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl
index 330eb42..55bf8de 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthCoarse_4e4fc4() {
   float4 res = fwidth((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.glsl
index 7255903..3c79eb6 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fwidthCoarse_4e4fc4() {
   vec4 res = fwidth(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_4e4fc4();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
index 489acfc..c0d1e3e 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fwidthCoarse_4e4fc4() -> vec4<f32> {
   var res : vec4<f32> = fwidthCoarse(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_4e4fc4();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl
index d393c95..d6d1e4f 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fwidthCoarse(vec<2, f32>) -> vec<2, f32>
 fn fwidthCoarse_e653f7() -> vec2<f32>{
   var res: vec2<f32> = fwidthCoarse(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_e653f7();
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl
index 9894ab7..7c1567e 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthCoarse_e653f7() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl
index 9894ab7..7c1567e 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthCoarse_e653f7() {
   float2 res = fwidth((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.glsl
index 15b97a9..3d3fa20 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fwidthCoarse_e653f7() {
   vec2 res = fwidth(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_e653f7();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.wgsl
index 2965c5b..46fe6e1 100644
--- a/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthCoarse/e653f7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fwidthCoarse_e653f7() -> vec2<f32> {
   var res : vec2<f32> = fwidthCoarse(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_e653f7();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl
index 88804da..cdd36c4 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fwidthFine(vec<3, f32>) -> vec<3, f32>
 fn fwidthFine_523fdc() -> vec3<f32>{
   var res: vec3<f32> = fwidthFine(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_523fdc();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.dxc.hlsl
index a0ea761..cccd17d 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.dxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthFine_523fdc() {
   float3 res = tint_fwidth_fine((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.fxc.hlsl
index a0ea761..cccd17d 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.fxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthFine_523fdc() {
   float3 res = tint_fwidth_fine((1.0f).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.glsl
index 8f2fc3a..2df48ae 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 fwidthFine_523fdc() {
-  vec3 res = fwidth(vec3(1.0f));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 fwidthFine_523fdc() {
+  vec3 res = fwidth(vec3(1.0f));
+  return res;
+}
+
 void fragment_main() {
   prevent_dce.inner = fwidthFine_523fdc();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.wgsl
index 9e321d3..210a2a3 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/523fdc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fwidthFine_523fdc() -> vec3<f32> {
   var res : vec3<f32> = fwidthFine(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_523fdc();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl
index 6aafe52..d48000f 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fwidthFine(vec<4, f32>) -> vec<4, f32>
 fn fwidthFine_68f4ef() -> vec4<f32>{
   var res: vec4<f32> = fwidthFine(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_68f4ef();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl
index e8687a8..f271851 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthFine_68f4ef() {
   float4 res = tint_fwidth_fine((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl
index e8687a8..f271851 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthFine_68f4ef() {
   float4 res = tint_fwidth_fine((1.0f).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.glsl
index b5a51b3..569da5c 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fwidthFine_68f4ef() {
   vec4 res = fwidth(vec4(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_68f4ef();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.wgsl
index c14a6de..e3f3724 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/68f4ef.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fwidthFine_68f4ef() -> vec4<f32> {
   var res : vec4<f32> = fwidthFine(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_68f4ef();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl
index c82e207..de4224c 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fwidthFine(f32) -> f32
 fn fwidthFine_f1742d() -> f32{
   var res: f32 = fwidthFine(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_f1742d();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.dxc.hlsl
index d2c5d52..752fe99 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.dxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthFine_f1742d() {
   float res = tint_fwidth_fine(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.fxc.hlsl
index d2c5d52..752fe99 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.fxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthFine_f1742d() {
   float res = tint_fwidth_fine(1.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.glsl
index 17d9c5d..b64c5bc 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fwidthFine_f1742d() {
   float res = fwidth(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_f1742d();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.wgsl
index 3c67cbb..9736b11 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/f1742d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fwidthFine_f1742d() -> f32 {
   var res : f32 = fwidthFine(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_f1742d();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl
index e6bdfcd..b4dcaa7 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fwidthFine(vec<2, f32>) -> vec<2, f32>
 fn fwidthFine_ff6aa0() -> vec2<f32>{
   var res: vec2<f32> = fwidthFine(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_ff6aa0();
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl
index 0167296..b6aa941 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthFine_ff6aa0() {
   float2 res = tint_fwidth_fine((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl
index 0167296..b6aa941 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl
@@ -2,13 +2,13 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthFine_ff6aa0() {
   float2 res = tint_fwidth_fine((1.0f).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
   return;
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.glsl
index e0b211e..16d102c 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fwidthFine_ff6aa0() {
   vec2 res = fwidth(vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_ff6aa0();
 }
diff --git a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.wgsl
index 7465282..faf840a 100644
--- a/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/fwidthFine/ff6aa0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fwidthFine_ff6aa0() -> vec2<f32> {
   var res : vec2<f32> = fwidthFine(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_ff6aa0();
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl
index 4d1bc9d..0cbda12 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_input_attachments;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @input_attachment_index(3)
 @group(1) @binding(0) var arg_0: input_attachment<i32>;
 
@@ -44,8 +47,6 @@
   var res: vec4<i32> = inputAttachmentLoad(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_315bf5();
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm
index 8cb54cb..33bd23f 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm
@@ -8,27 +8,27 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpMemberName %tint_symbol_1 0 "tint_symbol"
                OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_315bf5 "inputAttachmentLoad_315bf5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
+               OpMemberDecorate %tint_symbol_1 0 Offset 0
+               OpDecorate %tint_symbol_1 Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_0 InputAttachmentIndex 3
-               OpMemberDecorate %tint_symbol_1 0 Offset 0
-               OpDecorate %tint_symbol_1 Block
-               OpDecorate %5 DescriptorSet 0
-               OpDecorate %5 Binding 0
         %int = OpTypeInt 32 1
-          %3 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
       %v4int = OpTypeVector %int 4
 %tint_symbol_1 = OpTypeStruct %v4int
 %_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
-          %5 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %8 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
          %10 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
          %14 = OpConstantNull %v2int
@@ -41,7 +41,7 @@
 %inputAttachmentLoad_315bf5 = OpFunction %v4int None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function
-         %12 = OpLoad %3 %arg_0
+         %12 = OpLoad %8 %arg_0
          %13 = OpImageRead %v4int %12 %14
                OpStore %res %13
          %18 = OpLoad %v4int %res
@@ -50,7 +50,7 @@
 %fragment_main = OpFunction %void None %21
          %22 = OpLabel
          %23 = OpFunctionCall %v4int %inputAttachmentLoad_315bf5
-         %24 = OpAccessChain %_ptr_StorageBuffer_v4int %5 %uint_0
+         %24 = OpAccessChain %_ptr_StorageBuffer_v4int %1 %uint_0
                OpStore %24 %23
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.spvasm
index 62794ca..716833f 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.spvasm
@@ -8,28 +8,28 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_315bf5 "inputAttachmentLoad_315bf5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 InputAttachmentIndex 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 InputAttachmentIndex 3
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
         %int = OpTypeInt 32 1
-          %3 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
       %v4int = OpTypeVector %int 4
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
           %9 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
          %15 = OpConstantNull %v2int
@@ -43,7 +43,7 @@
 %inputAttachmentLoad_315bf5 = OpFunction %v4int None %9
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %18
-         %13 = OpLoad %3 %arg_0
+         %13 = OpLoad %8 %arg_0
          %12 = OpImageRead %v4int %13 %15
                OpStore %res %12
          %19 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.wgsl
index 60744ad..3223464 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/315bf5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_input_attachments;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @input_attachment_index(3) @group(1) @binding(0) var arg_0 : input_attachment<i32>;
 
 fn inputAttachmentLoad_315bf5() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_315bf5();
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl
index e9a34b7..ac825c6 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_input_attachments;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @input_attachment_index(3)
 @group(1) @binding(0) var arg_0: input_attachment<f32>;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = inputAttachmentLoad(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_c38b2f();
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm
index 5303c00..0eb8373 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm
@@ -8,27 +8,27 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpMemberName %tint_symbol_1 0 "tint_symbol"
                OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_c38b2f "inputAttachmentLoad_c38b2f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
+               OpMemberDecorate %tint_symbol_1 0 Offset 0
+               OpDecorate %tint_symbol_1 Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_0 InputAttachmentIndex 3
-               OpMemberDecorate %tint_symbol_1 0 Offset 0
-               OpDecorate %tint_symbol_1 Block
-               OpDecorate %5 DescriptorSet 0
-               OpDecorate %5 Binding 0
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
     %v4float = OpTypeVector %float 4
 %tint_symbol_1 = OpTypeStruct %v4float
 %_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
-          %5 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %8 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
          %10 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -42,7 +42,7 @@
 %inputAttachmentLoad_c38b2f = OpFunction %v4float None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function
-         %12 = OpLoad %3 %arg_0
+         %12 = OpLoad %8 %arg_0
          %13 = OpImageRead %v4float %12 %14
                OpStore %res %13
          %19 = OpLoad %v4float %res
@@ -51,7 +51,7 @@
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
          %24 = OpFunctionCall %v4float %inputAttachmentLoad_c38b2f
-         %25 = OpAccessChain %_ptr_StorageBuffer_v4float %5 %uint_0
+         %25 = OpAccessChain %_ptr_StorageBuffer_v4float %1 %uint_0
                OpStore %25 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm
index 552f7398..d4330af 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm
@@ -8,28 +8,28 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_c38b2f "inputAttachmentLoad_c38b2f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 InputAttachmentIndex 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 InputAttachmentIndex 3
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
           %9 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -44,7 +44,7 @@
 %inputAttachmentLoad_c38b2f = OpFunction %v4float None %9
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %19
-         %13 = OpLoad %3 %arg_0
+         %13 = OpLoad %8 %arg_0
          %12 = OpImageRead %v4float %13 %16
                OpStore %res %12
          %20 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl
index c1b2904..4a9cd8f 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_input_attachments;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @input_attachment_index(3) @group(1) @binding(0) var arg_0 : input_attachment<f32>;
 
 fn inputAttachmentLoad_c38b2f() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_c38b2f();
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl
index 2655222..69e54e6 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_input_attachments;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @input_attachment_index(3)
 @group(1) @binding(0) var arg_0: input_attachment<u32>;
 
@@ -44,8 +47,6 @@
   var res: vec4<u32> = inputAttachmentLoad(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_fc4d97();
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm
index 3ef2b11..78cc82e 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm
@@ -8,27 +8,27 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpMemberName %tint_symbol_1 0 "tint_symbol"
                OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_fc4d97 "inputAttachmentLoad_fc4d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
+               OpMemberDecorate %tint_symbol_1 0 Offset 0
+               OpDecorate %tint_symbol_1 Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_0 InputAttachmentIndex 3
-               OpMemberDecorate %tint_symbol_1 0 Offset 0
-               OpDecorate %tint_symbol_1 Block
-               OpDecorate %5 DescriptorSet 0
-               OpDecorate %5 Binding 0
        %uint = OpTypeInt 32 0
-          %3 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
      %v4uint = OpTypeVector %uint 4
 %tint_symbol_1 = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
-          %5 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %8 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
          %10 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -41,7 +41,7 @@
 %inputAttachmentLoad_fc4d97 = OpFunction %v4uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function
-         %12 = OpLoad %3 %arg_0
+         %12 = OpLoad %8 %arg_0
          %13 = OpImageRead %v4uint %12 %14
                OpStore %res %13
          %19 = OpLoad %v4uint %res
@@ -50,7 +50,7 @@
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
          %24 = OpFunctionCall %v4uint %inputAttachmentLoad_fc4d97
-         %25 = OpAccessChain %_ptr_StorageBuffer_v4uint %5 %uint_0
+         %25 = OpAccessChain %_ptr_StorageBuffer_v4uint %1 %uint_0
                OpStore %25 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm
index 1d89e7f..0375c12 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm
@@ -8,28 +8,28 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_fc4d97 "inputAttachmentLoad_fc4d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 InputAttachmentIndex 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 InputAttachmentIndex 3
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
        %uint = OpTypeInt 32 0
-          %3 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
      %v4uint = OpTypeVector %uint 4
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
           %9 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -43,7 +43,7 @@
 %inputAttachmentLoad_fc4d97 = OpFunction %v4uint None %9
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %19
-         %13 = OpLoad %3 %arg_0
+         %13 = OpLoad %8 %arg_0
          %12 = OpImageRead %v4uint %13 %16
                OpStore %res %12
          %20 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl
index 23e211a..74d3196 100644
--- a/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_input_attachments;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @input_attachment_index(3) @group(1) @binding(0) var arg_0 : input_attachment<u32>;
 
 fn inputAttachmentLoad_fc4d97() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_fc4d97();
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl
index 8382049..458ef67 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn insertBits(vec<2, u32>, vec<2, u32>, u32, u32) -> vec<2, u32>
 fn insertBits_3c7ba5() -> vec2<u32>{
   var res: vec2<u32> = insertBits(vec2<u32>(1u), vec2<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_3c7ba5();
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.dxc.hlsl
index 30d6b4c..233d4cc 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 insertBits_3c7ba5() {
   uint2 res = (3u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_3c7ba5()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.fxc.hlsl
index 30d6b4c..233d4cc 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 insertBits_3c7ba5() {
   uint2 res = (3u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_3c7ba5()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.glsl
index c96f52e..426b48d 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 insertBits_3c7ba5() {
   uvec2 res = uvec2(3u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 insertBits_3c7ba5() {
   uvec2 res = uvec2(3u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.wgsl
index c4718e0..f76e25d 100644
--- a/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/3c7ba5.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn insertBits_3c7ba5() -> vec2<u32> {
   var res : vec2<u32> = insertBits(vec2<u32>(1u), vec2<u32>(1u), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_3c7ba5();
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl
index 5768da4..13392b2 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn insertBits(vec<3, i32>, vec<3, i32>, u32, u32) -> vec<3, i32>
 fn insertBits_428b0b() -> vec3<i32>{
   var res: vec3<i32> = insertBits(vec3<i32>(1i), vec3<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_428b0b();
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.dxc.hlsl
index b58483d..8d10a29 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 insertBits_428b0b() {
   int3 res = (3).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.fxc.hlsl
index b58483d..8d10a29 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 insertBits_428b0b() {
   int3 res = (3).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.glsl
index bb84d77..0e5d151 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 insertBits_428b0b() {
-  ivec3 res = ivec3(3);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 insertBits_428b0b() {
+  ivec3 res = ivec3(3);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 insertBits_428b0b() {
-  ivec3 res = ivec3(3);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 insertBits_428b0b() {
+  ivec3 res = ivec3(3);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.wgsl
index 0009ffa..9e03231 100644
--- a/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/428b0b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn insertBits_428b0b() -> vec3<i32> {
   var res : vec3<i32> = insertBits(vec3<i32>(1i), vec3<i32>(1i), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_428b0b();
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl
index 2e3f3b4..5d25caa 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn insertBits(vec<4, u32>, vec<4, u32>, u32, u32) -> vec<4, u32>
 fn insertBits_51ede1() -> vec4<u32>{
   var res: vec4<u32> = insertBits(vec4<u32>(1u), vec4<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_51ede1();
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.dxc.hlsl
index acf086e..8c8d6d7 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 insertBits_51ede1() {
   uint4 res = (3u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_51ede1()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.fxc.hlsl
index acf086e..8c8d6d7 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 insertBits_51ede1() {
   uint4 res = (3u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_51ede1()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.glsl
index 2aae9b8..f5b15ad 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 insertBits_51ede1() {
   uvec4 res = uvec4(3u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 insertBits_51ede1() {
   uvec4 res = uvec4(3u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.wgsl
index 2d1167d..bea7f92 100644
--- a/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/51ede1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn insertBits_51ede1() -> vec4<u32> {
   var res : vec4<u32> = insertBits(vec4<u32>(1u), vec4<u32>(1u), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_51ede1();
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl
index 049e02b..1c0f825 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn insertBits(i32, i32, u32, u32) -> i32
 fn insertBits_65468b() -> i32{
   var res: i32 = insertBits(1i, 1i, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_65468b();
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.dxc.hlsl
index d2805db..b8c64a6 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int insertBits_65468b() {
   int res = 3;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_65468b()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.fxc.hlsl
index d2805db..b8c64a6 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int insertBits_65468b() {
   int res = 3;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_65468b()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.glsl
index 37a6536..4827634 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int insertBits_65468b() {
   int res = 3;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int insertBits_65468b() {
   int res = 3;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.wgsl
index 5ebb2d4..c692bfd 100644
--- a/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/65468b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn insertBits_65468b() -> i32 {
   var res : i32 = insertBits(1i, 1i, 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_65468b();
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl
index 06167db..bd31864 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn insertBits(vec<3, u32>, vec<3, u32>, u32, u32) -> vec<3, u32>
 fn insertBits_87826b() -> vec3<u32>{
   var res: vec3<u32> = insertBits(vec3<u32>(1u), vec3<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_87826b();
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.dxc.hlsl
index 7942f40..d1af295 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 insertBits_87826b() {
   uint3 res = (3u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_87826b()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.fxc.hlsl
index 7942f40..d1af295 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 insertBits_87826b() {
   uint3 res = (3u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_87826b()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.glsl
index 24d0470..a309087a 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 insertBits_87826b() {
-  uvec3 res = uvec3(3u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 insertBits_87826b() {
+  uvec3 res = uvec3(3u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 insertBits_87826b() {
-  uvec3 res = uvec3(3u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 insertBits_87826b() {
+  uvec3 res = uvec3(3u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.wgsl
index c991a58..67d050f7 100644
--- a/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/87826b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn insertBits_87826b() -> vec3<u32> {
   var res : vec3<u32> = insertBits(vec3<u32>(1u), vec3<u32>(1u), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_87826b();
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl
index 6dd47b6..4b1024d 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn insertBits(vec<4, i32>, vec<4, i32>, u32, u32) -> vec<4, i32>
 fn insertBits_d86978() -> vec4<i32>{
   var res: vec4<i32> = insertBits(vec4<i32>(1i), vec4<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_d86978();
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.dxc.hlsl
index b0af09c..8c0a6cc 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 insertBits_d86978() {
   int4 res = (3).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_d86978()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.fxc.hlsl
index b0af09c..8c0a6cc 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 insertBits_d86978() {
   int4 res = (3).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_d86978()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.glsl
index a21d114..8bb8a54 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 insertBits_d86978() {
   ivec4 res = ivec4(3);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 insertBits_d86978() {
   ivec4 res = ivec4(3);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.wgsl
index a8e806d..aa1f5d6 100644
--- a/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/d86978.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn insertBits_d86978() -> vec4<i32> {
   var res : vec4<i32> = insertBits(vec4<i32>(1i), vec4<i32>(1i), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_d86978();
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl
index 23581f3..dc665f4 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn insertBits(u32, u32, u32, u32) -> u32
 fn insertBits_e3e3a2() -> u32{
   var res: u32 = insertBits(1u, 1u, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_e3e3a2();
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.dxc.hlsl
index a502039..8f944b0 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint insertBits_e3e3a2() {
   uint res = 3u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_e3e3a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.fxc.hlsl
index a502039..8f944b0 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint insertBits_e3e3a2() {
   uint res = 3u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_e3e3a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.glsl
index f505b94..eaff538 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint insertBits_e3e3a2() {
   uint res = 3u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint insertBits_e3e3a2() {
   uint res = 3u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.wgsl
index 4d2d852..8e417ea 100644
--- a/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/e3e3a2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn insertBits_e3e3a2() -> u32 {
   var res : u32 = insertBits(1u, 1u, 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_e3e3a2();
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl
index 524f78b..ecf4a29 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn insertBits(vec<2, i32>, vec<2, i32>, u32, u32) -> vec<2, i32>
 fn insertBits_fe6ba6() -> vec2<i32>{
   var res: vec2<i32> = insertBits(vec2<i32>(1i), vec2<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_fe6ba6();
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.dxc.hlsl
index 6dc1d8b..25a9c47 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 insertBits_fe6ba6() {
   int2 res = (3).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.fxc.hlsl
index 6dc1d8b..25a9c47 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 insertBits_fe6ba6() {
   int2 res = (3).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
   return;
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.glsl
index e492269..ec7a933 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 insertBits_fe6ba6() {
   ivec2 res = ivec2(3);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 insertBits_fe6ba6() {
   ivec2 res = ivec2(3);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.wgsl
index c6e5f64..2be6150 100644
--- a/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/insertBits/fe6ba6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn insertBits_fe6ba6() -> vec2<i32> {
   var res : vec2<i32> = insertBits(vec2<i32>(1i), vec2<i32>(1i), 1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_fe6ba6();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl
index 09fb82e..1ecf6b9 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn inverseSqrt(f16) -> f16
 fn inverseSqrt_440300() -> f16{
   var res: f16 = inverseSqrt(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_440300();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.dxc.hlsl
index 61bf7fb..b681e26 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t inverseSqrt_440300() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.glsl
index c1b7796..2a02578 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t inverseSqrt_440300() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t inverseSqrt_440300() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.wgsl
index d4a4539..0658779 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/440300.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn inverseSqrt_440300() -> f16 {
   var res : f16 = inverseSqrt(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_440300();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl
index 4f55494..c790af0 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn inverseSqrt(vec<2, f16>) -> vec<2, f16>
 fn inverseSqrt_5f51f8() -> vec2<f16>{
   var res: vec2<f16> = inverseSqrt(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_5f51f8();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl
index a883f8b7..1a7e430 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> inverseSqrt_5f51f8() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.glsl
index ad9dacf..5764357 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 inverseSqrt_5f51f8() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 inverseSqrt_5f51f8() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.wgsl
index a98971d..1bc27a3 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/5f51f8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn inverseSqrt_5f51f8() -> vec2<f16> {
   var res : vec2<f16> = inverseSqrt(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_5f51f8();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl
index a500549..7f78c0e 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn inverseSqrt(f32) -> f32
 fn inverseSqrt_84407e() -> f32{
   var res: f32 = inverseSqrt(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_84407e();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.dxc.hlsl
index 8c54ff8..a486d99 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float inverseSqrt_84407e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.fxc.hlsl
index 8c54ff8..a486d99 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float inverseSqrt_84407e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.glsl
index 241c037..a186eb1 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float inverseSqrt_84407e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float inverseSqrt_84407e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.wgsl
index 8f00d36..e9f7847 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/84407e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn inverseSqrt_84407e() -> f32 {
   var res : f32 = inverseSqrt(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_84407e();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl
index 515325d..26f2c80 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn inverseSqrt(vec<2, f32>) -> vec<2, f32>
 fn inverseSqrt_8f2bd2() -> vec2<f32>{
   var res: vec2<f32> = inverseSqrt(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_8f2bd2();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl
index 1cfd1c5..058e9b7 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 inverseSqrt_8f2bd2() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl
index 1cfd1c5..058e9b7 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 inverseSqrt_8f2bd2() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.glsl
index 38f7915..4e1e96d 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 inverseSqrt_8f2bd2() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 inverseSqrt_8f2bd2() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.wgsl
index 1b93c48..c30096f 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/8f2bd2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn inverseSqrt_8f2bd2() -> vec2<f32> {
   var res : vec2<f32> = inverseSqrt(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_8f2bd2();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl
index 5401fde..0651305 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn inverseSqrt(vec<3, f32>) -> vec<3, f32>
 fn inverseSqrt_b197b1() -> vec3<f32>{
   var res: vec3<f32> = inverseSqrt(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b197b1();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl
index 9b4ff2d..34dbc6a 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 inverseSqrt_b197b1() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl
index 9b4ff2d..34dbc6a 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 inverseSqrt_b197b1() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.glsl
index e29eb1f..86218b3 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 inverseSqrt_b197b1() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 inverseSqrt_b197b1() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 inverseSqrt_b197b1() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 inverseSqrt_b197b1() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.wgsl
index 93b0322..5502f13 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b197b1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn inverseSqrt_b197b1() -> vec3<f32> {
   var res : vec3<f32> = inverseSqrt(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b197b1();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl
index 600d38f..db2548d 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn inverseSqrt(vec<3, f16>) -> vec<3, f16>
 fn inverseSqrt_b85ebd() -> vec3<f16>{
   var res: vec3<f16> = inverseSqrt(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b85ebd();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl
index 56b5314..876ce9b 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> inverseSqrt_b85ebd() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.glsl
index e5e2a26..e19f629 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 inverseSqrt_b85ebd() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 inverseSqrt_b85ebd() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.wgsl
index acaea81..96574bd 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/b85ebd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn inverseSqrt_b85ebd() -> vec3<f16> {
   var res : vec3<f16> = inverseSqrt(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b85ebd();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl
index 57e28ab..a2efe86 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn inverseSqrt(vec<4, f32>) -> vec<4, f32>
 fn inverseSqrt_c22347() -> vec4<f32>{
   var res: vec4<f32> = inverseSqrt(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_c22347();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.dxc.hlsl
index 39d61ff..98d141e 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 inverseSqrt_c22347() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.fxc.hlsl
index 39d61ff..98d141e 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 inverseSqrt_c22347() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.glsl
index e603a56..6df288d 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 inverseSqrt_c22347() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 inverseSqrt_c22347() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.wgsl
index 9bf0312..6fb974a 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/c22347.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn inverseSqrt_c22347() -> vec4<f32> {
   var res : vec4<f32> = inverseSqrt(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_c22347();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl
index dcf38e3..fea871a 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn inverseSqrt(vec<4, f16>) -> vec<4, f16>
 fn inverseSqrt_cbdc70() -> vec4<f16>{
   var res: vec4<f16> = inverseSqrt(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_cbdc70();
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl
index 38c35f9..c9118b7 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> inverseSqrt_cbdc70() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
   return;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.glsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.glsl
index a5e10f2..47a60e8 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 inverseSqrt_cbdc70() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 inverseSqrt_cbdc70() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.wgsl
index faab477..059f886 100644
--- a/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/inverseSqrt/cbdc70.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn inverseSqrt_cbdc70() -> vec4<f16> {
   var res : vec4<f16> = inverseSqrt(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_cbdc70();
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl
index 09acb47..4f97104 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn ldexp(f16, ia) -> f16
 fn ldexp_082c1f() -> f16{
   var res: f16 = ldexp(1.h, 1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_082c1f();
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.dxc.hlsl
index 175556b..d56e963 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t ldexp_082c1f() {
   float16_t res = float16_t(2.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.glsl
index 0cae730..1ce37b8 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_082c1f() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_082c1f() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.wgsl
index e604e88..8e019f0 100644
--- a/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/082c1f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn ldexp_082c1f() -> f16 {
   var res : f16 = ldexp(1.0h, 1);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_082c1f();
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl
index c0ce8be..1887d3d 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn ldexp(vec<2, f16>, vec<2, ia>) -> vec<2, f16>
 fn ldexp_217a31() -> vec2<f16>{
   var res: vec2<f16> = ldexp(vec2<f16>(1.h), vec2(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_217a31();
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.dxc.hlsl
index e9b3ce5..defaf2c 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> ldexp_217a31() {
   vector<float16_t, 2> res = (float16_t(2.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.glsl
index 8783f81..36dc2ee 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_217a31() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_217a31() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.wgsl
index 18a4855..91dfa99 100644
--- a/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/217a31.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn ldexp_217a31() -> vec2<f16> {
   var res : vec2<f16> = ldexp(vec2<f16>(1.0h), vec2(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_217a31();
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl
index e6a1917..cc225b7 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn ldexp(vec<2, f16>, vec<2, i32>) -> vec<2, f16>
 fn ldexp_3d90b4() -> vec2<f16>{
   var res: vec2<f16> = ldexp(vec2<f16>(1.h), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_3d90b4();
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.dxc.hlsl
index a50d41e..a5c1f2b 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> ldexp_3d90b4() {
   vector<float16_t, 2> res = (float16_t(2.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.glsl
index 963bbee..0690c64 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_3d90b4() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_3d90b4() {
   f16vec2 res = f16vec2(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.wgsl
index 10561b3..bb11f51 100644
--- a/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/3d90b4.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn ldexp_3d90b4() -> vec2<f16> {
   var res : vec2<f16> = ldexp(vec2<f16>(1.0h), vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_3d90b4();
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl
index b4f09b6..268e2d4 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn ldexp(vec<3, f32>, vec<3, ia>) -> vec<3, f32>
 fn ldexp_593ff3() -> vec3<f32>{
   var res: vec3<f32> = ldexp(vec3<f32>(1.f), vec3(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_593ff3();
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.dxc.hlsl
index bfc3618..a6048f6 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_593ff3() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.fxc.hlsl
index bfc3618..a6048f6 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_593ff3() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.glsl
index 86f02f6..53911b2 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 ldexp_593ff3() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 ldexp_593ff3() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 ldexp_593ff3() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 ldexp_593ff3() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.wgsl
index 2300a0c..e5fce2b 100644
--- a/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/593ff3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn ldexp_593ff3() -> vec3<f32> {
   var res : vec3<f32> = ldexp(vec3<f32>(1.0f), vec3(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_593ff3();
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl
index cb62281..34c348a 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn ldexp(f16, i32) -> f16
 fn ldexp_624e0c() -> f16{
   var res: f16 = ldexp(1.h, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_624e0c();
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.dxc.hlsl
index abc1b0d..4e30e3c 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t ldexp_624e0c() {
   float16_t res = float16_t(2.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.glsl
index 24ee45e..2e51c61 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_624e0c() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_624e0c() {
   float16_t res = 2.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.wgsl
index db76a07..f50476c 100644
--- a/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/624e0c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn ldexp_624e0c() -> f16 {
   var res : f16 = ldexp(1.0h, 1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_624e0c();
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl
index 7069467..e98289c 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn ldexp(vec<4, f32>, vec<4, ia>) -> vec<4, f32>
 fn ldexp_65a7bd() -> vec4<f32>{
   var res: vec4<f32> = ldexp(vec4<f32>(1.f), vec4(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_65a7bd();
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.dxc.hlsl
index e614c4e..5a1f7904 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_65a7bd() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.fxc.hlsl
index e614c4e..5a1f7904 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_65a7bd() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.glsl
index 735de5c..116cd14 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_65a7bd() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_65a7bd() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.wgsl
index 82a0a3e..d4e2f03 100644
--- a/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/65a7bd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn ldexp_65a7bd() -> vec4<f32> {
   var res : vec4<f32> = ldexp(vec4<f32>(1.0f), vec4(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_65a7bd();
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl
index 567bdb9..3608eea 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn ldexp(vec<3, f16>, vec<3, i32>) -> vec<3, f16>
 fn ldexp_7485ce() -> vec3<f16>{
   var res: vec3<f16> = ldexp(vec3<f16>(1.h), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7485ce();
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.dxc.hlsl
index 7c0a398..e274c3f 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> ldexp_7485ce() {
   vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.glsl
index c04ec08..6b02eac 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_7485ce() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_7485ce() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.wgsl
index 84c8735..62cabd6 100644
--- a/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/7485ce.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn ldexp_7485ce() -> vec3<f16> {
   var res : vec3<f16> = ldexp(vec3<f16>(1.0h), vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7485ce();
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl
index 0c7689c..6798f75 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn ldexp(vec<4, f16>, vec<4, i32>) -> vec<4, f16>
 fn ldexp_7fa13c() -> vec4<f16>{
   var res: vec4<f16> = ldexp(vec4<f16>(1.h), vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7fa13c();
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.dxc.hlsl
index 697476b..44003a5 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> ldexp_7fa13c() {
   vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.glsl
index 1ca7f51..f554b50 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_7fa13c() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_7fa13c() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.wgsl
index 0a47df1..10a8739 100644
--- a/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/7fa13c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn ldexp_7fa13c() -> vec4<f16> {
   var res : vec4<f16> = ldexp(vec4<f16>(1.0h), vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7fa13c();
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl
index d02be60..1eb77ce 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn ldexp(vec<4, f16>, vec<4, ia>) -> vec<4, f16>
 fn ldexp_8a0c2f() -> vec4<f16>{
   var res: vec4<f16> = ldexp(vec4<f16>(1.h), vec4(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8a0c2f();
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.dxc.hlsl
index 95cc385..647ac05 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> ldexp_8a0c2f() {
   vector<float16_t, 4> res = (float16_t(2.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.glsl
index 0ff5fe5..95f93b5 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_8a0c2f() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_8a0c2f() {
   f16vec4 res = f16vec4(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.wgsl
index 0bc2d7c..56c73ee 100644
--- a/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/8a0c2f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn ldexp_8a0c2f() -> vec4<f16> {
   var res : vec4<f16> = ldexp(vec4<f16>(1.0h), vec4(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8a0c2f();
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl
index b7116f4..1d44cba 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn ldexp(vec<3, f16>, vec<3, ia>) -> vec<3, f16>
 fn ldexp_8e43e9() -> vec3<f16>{
   var res: vec3<f16> = ldexp(vec3<f16>(1.h), vec3(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8e43e9();
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.dxc.hlsl
index 1e2b8c3..2857735 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> ldexp_8e43e9() {
   vector<float16_t, 3> res = (float16_t(2.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.glsl
index f537eee..686da16 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_8e43e9() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_8e43e9() {
   f16vec3 res = f16vec3(2.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.wgsl
index 1b512fb..69a940e 100644
--- a/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/8e43e9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn ldexp_8e43e9() -> vec3<f16> {
   var res : vec3<f16> = ldexp(vec3<f16>(1.0h), vec3(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8e43e9();
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl
index 8cd2fc8..850e347 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn ldexp(vec<2, f32>, vec<2, ia>) -> vec<2, f32>
 fn ldexp_a22679() -> vec2<f32>{
   var res: vec2<f32> = ldexp(vec2<f32>(1.f), vec2(1));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a22679();
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.dxc.hlsl
index 9c11136..6890146 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_a22679() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_a22679()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.fxc.hlsl
index 9c11136..6890146 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_a22679() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_a22679()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.glsl
index 72d4d81..b8013e8 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_a22679() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_a22679() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.wgsl
index 11c659a..3cb9751 100644
--- a/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/a22679.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn ldexp_a22679() -> vec2<f32> {
   var res : vec2<f32> = ldexp(vec2<f32>(1.0f), vec2(1));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a22679();
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl
index 85235a8..036832a 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn ldexp(vec<3, f32>, vec<3, i32>) -> vec<3, f32>
 fn ldexp_a31cdc() -> vec3<f32>{
   var res: vec3<f32> = ldexp(vec3<f32>(1.f), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a31cdc();
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.dxc.hlsl
index b68c4c6..feb5b1c 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_a31cdc() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.fxc.hlsl
index b68c4c6..feb5b1c 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_a31cdc() {
   float3 res = (2.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.glsl
index 3659d21..eb727cd 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 ldexp_a31cdc() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 ldexp_a31cdc() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 ldexp_a31cdc() {
-  vec3 res = vec3(2.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 ldexp_a31cdc() {
+  vec3 res = vec3(2.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.wgsl
index 9de17c5..6bffafa 100644
--- a/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/a31cdc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn ldexp_a31cdc() -> vec3<f32> {
   var res : vec3<f32> = ldexp(vec3<f32>(1.0f), vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a31cdc();
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl
index b1d77d5..ee9ff93 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn ldexp(vec<2, f32>, vec<2, i32>) -> vec<2, f32>
 fn ldexp_abd718() -> vec2<f32>{
   var res: vec2<f32> = ldexp(vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_abd718();
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.dxc.hlsl
index 82b232d..e593623 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_abd718() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_abd718()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.fxc.hlsl
index 82b232d..e593623 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_abd718() {
   float2 res = (2.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_abd718()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.glsl
index abe9f16..8ef0474 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_abd718() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_abd718() {
   vec2 res = vec2(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.wgsl
index 7ec056f..c72475f 100644
--- a/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/abd718.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn ldexp_abd718() -> vec2<f32> {
   var res : vec2<f32> = ldexp(vec2<f32>(1.0f), vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_abd718();
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl
index 25d911c..5ef18db 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn ldexp(f32, ia) -> f32
 fn ldexp_c9d0b7() -> f32{
   var res: f32 = ldexp(1.f, 1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_c9d0b7();
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.dxc.hlsl
index 5e105e1..eaed915 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_c9d0b7() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.fxc.hlsl
index 5e105e1..eaed915 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_c9d0b7() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.glsl
index 70ad30f..028dbc3 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_c9d0b7() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_c9d0b7() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.wgsl
index f445b02..f6b8a02 100644
--- a/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/c9d0b7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn ldexp_c9d0b7() -> f32 {
   var res : f32 = ldexp(1.0f, 1);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_c9d0b7();
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl
index f7961cc..e6e25a4 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn ldexp(vec<4, f32>, vec<4, i32>) -> vec<4, f32>
 fn ldexp_cc9cde() -> vec4<f32>{
   var res: vec4<f32> = ldexp(vec4<f32>(1.f), vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_cc9cde();
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.dxc.hlsl
index ec335c7..2565389 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_cc9cde() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.fxc.hlsl
index ec335c7..2565389 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_cc9cde() {
   float4 res = (2.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.glsl
index 29798d8..a51bd34 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_cc9cde() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_cc9cde() {
   vec4 res = vec4(2.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.wgsl
index 25dd131..5097556 100644
--- a/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/cc9cde.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn ldexp_cc9cde() -> vec4<f32> {
   var res : vec4<f32> = ldexp(vec4<f32>(1.0f), vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_cc9cde();
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl
index 785839f..70845a6 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn ldexp(f32, i32) -> f32
 fn ldexp_db8b49() -> f32{
   var res: f32 = ldexp(1.f, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_db8b49();
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.dxc.hlsl
index dee17e3..92fd033 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_db8b49() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_db8b49()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.fxc.hlsl
index dee17e3..92fd033 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_db8b49() {
   float res = 2.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_db8b49()));
   return;
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.glsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.glsl
index 52bda0f..2e39d79 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_db8b49() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_db8b49() {
   float res = 2.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.wgsl
index 03e82d6..4cc1972 100644
--- a/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/ldexp/db8b49.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn ldexp_db8b49() -> f32 {
   var res : f32 = ldexp(1.0f, 1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_db8b49();
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl b/test/tint/builtins/gen/literal/length/056071.wgsl
index 82c5c5d..330a2c4 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(vec<3, f32>) -> f32
 fn length_056071() -> f32{
   var res: f32 = length(vec3<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_056071();
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.dxc.hlsl
index 85022f7..309a5d9 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_056071() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_056071()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.fxc.hlsl
index 85022f7..309a5d9 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_056071() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_056071()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.glsl
index 99cfc27..b7f5284 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_056071() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_056071() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.wgsl
index bad83eb..bdb69ec 100644
--- a/test/tint/builtins/gen/literal/length/056071.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/056071.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_056071() -> f32 {
   var res : f32 = length(vec3<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_056071();
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl
index 72b6f71..66b8137 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(vec<2, f16>) -> f16
 fn length_3f0e13() -> f16{
   var res: f16 = length(vec2<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_3f0e13();
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.dxc.hlsl
index 5d71751..7f91000 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_3f0e13() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_3f0e13());
   return;
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.glsl
index 82a6615..7236b34 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_3f0e13() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_3f0e13() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.wgsl
index 7916450..d290a56 100644
--- a/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/3f0e13.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_3f0e13() -> f16 {
   var res : f16 = length(vec2<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_3f0e13();
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl
index 716d6ab..02fa562 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(vec<4, f16>) -> f16
 fn length_5b1a9b() -> f16{
   var res: f16 = length(vec4<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_5b1a9b();
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.dxc.hlsl
index 75e6fa2..bb2e480 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_5b1a9b() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_5b1a9b());
   return;
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.glsl
index 5a0b653..76cd4f3 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_5b1a9b() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_5b1a9b() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.wgsl
index fed02a9..2906ecb 100644
--- a/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/5b1a9b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_5b1a9b() -> f16 {
   var res : f16 = length(vec4<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_5b1a9b();
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl b/test/tint/builtins/gen/literal/length/602a17.wgsl
index 7046d3e..465a4e4 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(f32) -> f32
 fn length_602a17() -> f32{
   var res: f32 = length(0.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_602a17();
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.dxc.hlsl
index 65cfff7..ff65280 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_602a17() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_602a17()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.fxc.hlsl
index 65cfff7..ff65280 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_602a17() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_602a17()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.glsl
index 5956428..8df441f 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_602a17() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_602a17() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.wgsl
index 6bda038..6d89ce2 100644
--- a/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/602a17.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_602a17() -> f32 {
   var res : f32 = length(0.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_602a17();
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl
index 6c78a46..8658491 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(vec<2, f32>) -> f32
 fn length_afde8b() -> f32{
   var res: f32 = length(vec2<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_afde8b();
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.dxc.hlsl
index f043e2e..c56de89 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_afde8b() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_afde8b()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.fxc.hlsl
index f043e2e..c56de89 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_afde8b() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_afde8b()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.glsl
index 319b3a6..2104226 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_afde8b() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_afde8b() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.wgsl
index 8205e36..3444bbd 100644
--- a/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/afde8b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_afde8b() -> f32 {
   var res : f32 = length(vec2<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_afde8b();
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl
index 3075360..8a59a85 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(vec<3, f16>) -> f16
 fn length_ba16d6() -> f16{
   var res: f16 = length(vec3<f16>(0.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_ba16d6();
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.dxc.hlsl
index ca0918e..dd6a69f 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_ba16d6() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_ba16d6());
   return;
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.glsl
index e031756..3df6025 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_ba16d6() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_ba16d6() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.wgsl
index 4880b8a..37fa96e 100644
--- a/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/ba16d6.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_ba16d6() -> f16 {
   var res : f16 = length(vec3<f16>(0.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_ba16d6();
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl b/test/tint/builtins/gen/literal/length/becebf.wgsl
index 35c0c3a..af4e480 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(vec<4, f32>) -> f32
 fn length_becebf() -> f32{
   var res: f32 = length(vec4<f32>(0.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_becebf();
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.dxc.hlsl
index a2baa12..66d353c 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_becebf() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_becebf()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.fxc.hlsl
index a2baa12..66d353c 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_becebf() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_becebf()));
   return;
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.glsl
index cc139e0..c9d432e 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_becebf() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_becebf() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.wgsl
index 7ca746f..de12e8c 100644
--- a/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/becebf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_becebf() -> f32 {
   var res : f32 = length(vec4<f32>(0.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_becebf();
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl b/test/tint/builtins/gen/literal/length/c158da.wgsl
index 2e5e6c2..45f1578 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(f16) -> f16
 fn length_c158da() -> f16{
   var res: f16 = length(0.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_c158da();
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.dxc.hlsl
index 6a95424..8afabe4 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_c158da() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_c158da());
   return;
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.glsl
index 4078b6c..0a4eaf5 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_c158da() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_c158da() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.wgsl
index a3ca860..de2160d 100644
--- a/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/length/c158da.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_c158da() -> f16 {
   var res : f16 = length(0.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_c158da();
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl
index 8b81bdb..1e57119 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn log(vec<4, f32>) -> vec<4, f32>
 fn log_3da25a() -> vec4<f32>{
   var res: vec4<f32> = log(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_3da25a();
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.dxc.hlsl
index 51fad7b..46bbc84 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log_3da25a() {
   float4 res = (0.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log_3da25a()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.fxc.hlsl
index 51fad7b..46bbc84 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log_3da25a() {
   float4 res = (0.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log_3da25a()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.glsl
index 0fedfdf..b5b15a2 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log_3da25a() {
   vec4 res = vec4(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log_3da25a() {
   vec4 res = vec4(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.wgsl
index 38a3fa9..8c5d875 100644
--- a/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/3da25a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn log_3da25a() -> vec4<f32> {
   var res : vec4<f32> = log(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_3da25a();
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl
index 1a9ae66..3882300 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn log(vec<3, f16>) -> vec<3, f16>
 fn log_6ff86f() -> vec3<f16>{
   var res: vec3<f16> = log(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_6ff86f();
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.dxc.hlsl
index 4c2a280..3ec88d5 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> log_6ff86f() {
   vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
   return;
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.glsl
index 7e30a77..9f2e5e0 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log_6ff86f() {
   f16vec3 res = f16vec3(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log_6ff86f() {
   f16vec3 res = f16vec3(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.wgsl
index 5c53ed7..855bed0 100644
--- a/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/6ff86f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn log_6ff86f() -> vec3<f16> {
   var res : vec3<f16> = log(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_6ff86f();
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl
index f011e5a..bb15a7f 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn log(f32) -> f32
 fn log_7114a6() -> f32{
   var res: f32 = log(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_7114a6();
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.dxc.hlsl
index 59a1cff..874561f 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log_7114a6() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log_7114a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.fxc.hlsl
index 59a1cff..874561f 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log_7114a6() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log_7114a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.glsl
index 9d864c4..b6557d4 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log_7114a6() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log_7114a6() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.wgsl
index bc3626d..1256288 100644
--- a/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/7114a6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn log_7114a6() -> f32 {
   var res : f32 = log(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_7114a6();
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl
index 09180e6..5242417 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn log(vec<2, f16>) -> vec<2, f16>
 fn log_8f0e32() -> vec2<f16>{
   var res: vec2<f16> = log(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_8f0e32();
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.dxc.hlsl
index bd91193..6b61b8b 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> log_8f0e32() {
   vector<float16_t, 2> res = (float16_t(0.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
   return;
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.glsl
index 0f3fea9..ad12308 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log_8f0e32() {
   f16vec2 res = f16vec2(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log_8f0e32() {
   f16vec2 res = f16vec2(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.wgsl
index c5f516d..ad151b1 100644
--- a/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/8f0e32.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn log_8f0e32() -> vec2<f16> {
   var res : vec2<f16> = log(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_8f0e32();
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl
index 2560677..503f1d9 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn log(vec<2, f32>) -> vec<2, f32>
 fn log_b2ce28() -> vec2<f32>{
   var res: vec2<f32> = log(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_b2ce28();
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.dxc.hlsl
index ec9a9fb..e81668e 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log_b2ce28() {
   float2 res = (0.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log_b2ce28()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.fxc.hlsl
index ec9a9fb..e81668e 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log_b2ce28() {
   float2 res = (0.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log_b2ce28()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.glsl
index 1ae35ff..f2cfc2f 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log_b2ce28() {
   vec2 res = vec2(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log_b2ce28() {
   vec2 res = vec2(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.wgsl
index 776899b..1c4197c 100644
--- a/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/b2ce28.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn log_b2ce28() -> vec2<f32> {
   var res : vec2<f32> = log(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_b2ce28();
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl
index 266d553..bc1d95c 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn log(f16) -> f16
 fn log_c9f489() -> f16{
   var res: f16 = log(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_c9f489();
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.dxc.hlsl
index 8582edc..b670bcc 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t log_c9f489() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, log_c9f489());
   return;
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.glsl
index 55b2725..e629c02 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log_c9f489() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log_c9f489() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.wgsl
index cb1f707..20344ca 100644
--- a/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/c9f489.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn log_c9f489() -> f16 {
   var res : f16 = log(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_c9f489();
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl
index 0cc11ff..dc51692 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn log(vec<4, f16>) -> vec<4, f16>
 fn log_cdbdc1() -> vec4<f16>{
   var res: vec4<f16> = log(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_cdbdc1();
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.dxc.hlsl
index 1188542..e0f97f4 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> log_cdbdc1() {
   vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
   return;
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.glsl
index dccd01f..271f70f 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log_cdbdc1() {
   f16vec4 res = f16vec4(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log_cdbdc1() {
   f16vec4 res = f16vec4(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.wgsl
index 498b84e..7efdded 100644
--- a/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/cdbdc1.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn log_cdbdc1() -> vec4<f16> {
   var res : vec4<f16> = log(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_cdbdc1();
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl
index 1fba8f1..9189d05 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn log(vec<3, f32>) -> vec<3, f32>
 fn log_f4c570() -> vec3<f32>{
   var res: vec3<f32> = log(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_f4c570();
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.dxc.hlsl
index 7619696..2415e69 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log_f4c570() {
   float3 res = (0.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log_f4c570()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.fxc.hlsl
index 7619696..2415e69 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log_f4c570() {
   float3 res = (0.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log_f4c570()));
   return;
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.glsl
index 2677e97..f871d65 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 log_f4c570() {
-  vec3 res = vec3(0.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 log_f4c570() {
+  vec3 res = vec3(0.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 log_f4c570() {
-  vec3 res = vec3(0.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 log_f4c570() {
+  vec3 res = vec3(0.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.wgsl
index f3c092e..86cd565 100644
--- a/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log/f4c570.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn log_f4c570() -> vec3<f32> {
   var res : vec3<f32> = log(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_f4c570();
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl
index 911da65..450579a 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn log2(vec<3, f16>) -> vec<3, f16>
 fn log2_38b478() -> vec3<f16>{
   var res: vec3<f16> = log2(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_38b478();
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.dxc.hlsl
index 0319ae0..eb014f9 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> log2_38b478() {
   vector<float16_t, 3> res = (float16_t(0.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
   return;
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.glsl
index db04c9d..e5090ad 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log2_38b478() {
   f16vec3 res = f16vec3(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log2_38b478() {
   f16vec3 res = f16vec3(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.wgsl
index b0b005f..ab2a034 100644
--- a/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/38b478.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn log2_38b478() -> vec3<f16> {
   var res : vec3<f16> = log2(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_38b478();
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl
index 7641993..bb85b8b 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn log2(f32) -> f32
 fn log2_4036ed() -> f32{
   var res: f32 = log2(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_4036ed();
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.dxc.hlsl
index 63c64de..7f0fe45 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log2_4036ed() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log2_4036ed()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.fxc.hlsl
index 63c64de..7f0fe45 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log2_4036ed() {
   float res = 0.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log2_4036ed()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.glsl
index ed262d6..848def6 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log2_4036ed() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log2_4036ed() {
   float res = 0.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.wgsl
index 223d75c..fead204 100644
--- a/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/4036ed.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn log2_4036ed() -> f32 {
   var res : f32 = log2(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_4036ed();
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl b/test/tint/builtins/gen/literal/log2/776088.wgsl
index dd0196e..19e1022 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn log2(vec<4, f16>) -> vec<4, f16>
 fn log2_776088() -> vec4<f16>{
   var res: vec4<f16> = log2(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_776088();
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.dxc.hlsl
index c68c68f..a8265e9 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> log2_776088() {
   vector<float16_t, 4> res = (float16_t(0.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
   return;
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.glsl
index d60e77a..5023ab6 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log2_776088() {
   f16vec4 res = f16vec4(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log2_776088() {
   f16vec4 res = f16vec4(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.wgsl
index d05d64e..672aba8 100644
--- a/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/776088.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn log2_776088() -> vec4<f16> {
   var res : vec4<f16> = log2(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_776088();
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl
index a4838ee..c52354b 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn log2(f16) -> f16
 fn log2_8c10b3() -> f16{
   var res: f16 = log2(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_8c10b3();
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.dxc.hlsl
index 2918b17..9741352 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t log2_8c10b3() {
   float16_t res = float16_t(0.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, log2_8c10b3());
   return;
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.glsl
index c125651..06c1e68 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log2_8c10b3() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log2_8c10b3() {
   float16_t res = 0.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.wgsl
index 2414f86..6ed4949 100644
--- a/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/8c10b3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn log2_8c10b3() -> f16 {
   var res : f16 = log2(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_8c10b3();
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl b/test/tint/builtins/gen/literal/log2/902988.wgsl
index 02336fa..4e2943d 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn log2(vec<4, f32>) -> vec<4, f32>
 fn log2_902988() -> vec4<f32>{
   var res: vec4<f32> = log2(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_902988();
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.dxc.hlsl
index 8852747..4e3306e 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log2_902988() {
   float4 res = (0.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log2_902988()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.fxc.hlsl
index 8852747..4e3306e 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log2_902988() {
   float4 res = (0.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log2_902988()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.glsl
index 9349543..82d7324 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log2_902988() {
   vec4 res = vec4(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log2_902988() {
   vec4 res = vec4(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.wgsl
index 491e98b..25950e7 100644
--- a/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/902988.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn log2_902988() -> vec4<f32> {
   var res : vec4<f32> = log2(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_902988();
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl
index 0337973..17b990f 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn log2(vec<3, f32>) -> vec<3, f32>
 fn log2_adb233() -> vec3<f32>{
   var res: vec3<f32> = log2(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_adb233();
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.dxc.hlsl
index fed16ba..cd2bd93 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log2_adb233() {
   float3 res = (0.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log2_adb233()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.fxc.hlsl
index fed16ba..cd2bd93 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log2_adb233() {
   float3 res = (0.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log2_adb233()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.glsl
index f6a6cc4..d710bda 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 log2_adb233() {
-  vec3 res = vec3(0.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 log2_adb233() {
+  vec3 res = vec3(0.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 log2_adb233() {
-  vec3 res = vec3(0.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 log2_adb233() {
+  vec3 res = vec3(0.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.wgsl
index cb6d22a..0ae633d 100644
--- a/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/adb233.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn log2_adb233() -> vec3<f32> {
   var res : vec3<f32> = log2(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_adb233();
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl
index 57bedca..e5d3bcb 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn log2(vec<2, f32>) -> vec<2, f32>
 fn log2_aea659() -> vec2<f32>{
   var res: vec2<f32> = log2(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_aea659();
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.dxc.hlsl
index cea3292..321add8 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log2_aea659() {
   float2 res = (0.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log2_aea659()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.fxc.hlsl
index cea3292..321add8 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log2_aea659() {
   float2 res = (0.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log2_aea659()));
   return;
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.glsl
index e7064f5..04584e6 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log2_aea659() {
   vec2 res = vec2(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log2_aea659() {
   vec2 res = vec2(0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.wgsl
index 98c9a13..e8152c6 100644
--- a/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/aea659.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn log2_aea659() -> vec2<f32> {
   var res : vec2<f32> = log2(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_aea659();
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl
index dd302a9c..fd31db4 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn log2(vec<2, f16>) -> vec<2, f16>
 fn log2_fb9f0b() -> vec2<f16>{
   var res: vec2<f16> = log2(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_fb9f0b();
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.dxc.hlsl
index d3b5375..9bae6e0 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> log2_fb9f0b() {
   vector<float16_t, 2> res = (float16_t(0.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
   return;
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.glsl
index 8c81054..1b1802e 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log2_fb9f0b() {
   f16vec2 res = f16vec2(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log2_fb9f0b() {
   f16vec2 res = f16vec2(0.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.wgsl
index 463de61..02997e6 100644
--- a/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/log2/fb9f0b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn log2_fb9f0b() -> vec2<f16> {
   var res : vec2<f16> = log2(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_fb9f0b();
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl
index c73b43c..f8f21b6 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn max(u32, u32) -> u32
 fn max_0c0aae() -> u32{
   var res: u32 = max(1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_0c0aae();
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.dxc.hlsl
index c698016..96633b0 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint max_0c0aae() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_0c0aae()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.fxc.hlsl
index c698016..96633b0 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint max_0c0aae() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_0c0aae()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.glsl
index cfbc381..acb2d7f 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint max_0c0aae() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint max_0c0aae() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.wgsl
index 8a9c0ff..ac7b7d3 100644
--- a/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/0c0aae.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn max_0c0aae() -> u32 {
   var res : u32 = max(1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_0c0aae();
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl
index b91fe45..ea77c98 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn max(f16, f16) -> f16
 fn max_111ac0() -> f16{
   var res: f16 = max(1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_111ac0();
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.dxc.hlsl
index 2621970..fb3866a 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t max_111ac0() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, max_111ac0());
   return;
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.glsl
index 7a16e15..2cec445 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t max_111ac0() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t max_111ac0() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.wgsl
index 731f57f..f8ebde2 100644
--- a/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/111ac0.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn max_111ac0() -> f16 {
   var res : f16 = max(1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_111ac0();
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl
index 5f86ba6..15a9d10 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn max(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
 fn max_25eafe() -> vec3<i32>{
   var res: vec3<i32> = max(vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_25eafe();
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.dxc.hlsl
index cdd0287..5e1e112 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 max_25eafe() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_25eafe()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.fxc.hlsl
index cdd0287..5e1e112 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 max_25eafe() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_25eafe()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.glsl
index 0061067..47e18c0 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 max_25eafe() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 max_25eafe() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 max_25eafe() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 max_25eafe() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.wgsl
index db2954b..a01f710 100644
--- a/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/25eafe.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn max_25eafe() -> vec3<i32> {
   var res : vec3<i32> = max(vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_25eafe();
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl b/test/tint/builtins/gen/literal/max/320815.wgsl
index bf57c49..be5bc64 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn max(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
 fn max_320815() -> vec2<u32>{
   var res: vec2<u32> = max(vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_320815();
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.dxc.hlsl
index e449a99..c991475 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 max_320815() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_320815()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.fxc.hlsl
index e449a99..c991475 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 max_320815() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_320815()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.glsl
index 04c8f04..dd35509 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 max_320815() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 max_320815() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.wgsl
index e549a72..b4f8bcd 100644
--- a/test/tint/builtins/gen/literal/max/320815.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/320815.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn max_320815() -> vec2<u32> {
   var res : vec2<u32> = max(vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_320815();
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl b/test/tint/builtins/gen/literal/max/34956e.wgsl
index 59925cd..a7cd007 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn max(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn max_34956e() -> vec2<f16>{
   var res: vec2<f16> = max(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_34956e();
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.dxc.hlsl
index 76a1f56..8e408d6 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> max_34956e() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
   return;
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.glsl
index 273aa27..15625e7 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 max_34956e() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 max_34956e() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.wgsl
index f5b0740..2f604e5 100644
--- a/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/34956e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn max_34956e() -> vec2<f16> {
   var res : vec2<f16> = max(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_34956e();
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl b/test/tint/builtins/gen/literal/max/445169.wgsl
index 7b267c8..4b03174 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn max(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn max_445169() -> vec3<f16>{
   var res: vec3<f16> = max(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_445169();
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.dxc.hlsl
index 0c9f5ab..bf6078a 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> max_445169() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
   return;
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.glsl
index 61a30c2..dd9d307 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 max_445169() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 max_445169() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.wgsl
index 14b85f1..bfd5afe 100644
--- a/test/tint/builtins/gen/literal/max/445169.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/445169.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn max_445169() -> vec3<f16> {
   var res : vec3<f16> = max(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_445169();
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl
index 78e54d1..7a6b97a 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn max(f32, f32) -> f32
 fn max_44a39d() -> f32{
   var res: f32 = max(1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_44a39d();
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.dxc.hlsl
index f5db934..3391857 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float max_44a39d() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_44a39d()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.fxc.hlsl
index f5db934..3391857 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float max_44a39d() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_44a39d()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.glsl
index d02b1c3..e51b4bc 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float max_44a39d() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float max_44a39d() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.wgsl
index bced322..ee4c9e5 100644
--- a/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/44a39d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn max_44a39d() -> f32 {
   var res : f32 = max(1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_44a39d();
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl b/test/tint/builtins/gen/literal/max/453e04.wgsl
index 55d8b30..845e987 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn max(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
 fn max_453e04() -> vec4<u32>{
   var res: vec4<u32> = max(vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_453e04();
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.dxc.hlsl
index e73d51b..bd40e92 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 max_453e04() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_453e04()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.fxc.hlsl
index e73d51b..bd40e92 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 max_453e04() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_453e04()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.glsl
index 094ab95e..8f53b75 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 max_453e04() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 max_453e04() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.wgsl
index 506fe2e..eef8fba 100644
--- a/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/453e04.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn max_453e04() -> vec4<u32> {
   var res : vec4<u32> = max(vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_453e04();
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl b/test/tint/builtins/gen/literal/max/462050.wgsl
index 7360c8c..73dbd21 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn max(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn max_462050() -> vec2<f32>{
   var res: vec2<f32> = max(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_462050();
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.dxc.hlsl
index a16d4ec..42ee11c 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 max_462050() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_462050()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.fxc.hlsl
index a16d4ec..42ee11c 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 max_462050() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_462050()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.glsl
index 2f2557c..62c1268 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 max_462050() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 max_462050() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.wgsl
index c42b24e..80828ba 100644
--- a/test/tint/builtins/gen/literal/max/462050.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/462050.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn max_462050() -> vec2<f32> {
   var res : vec2<f32> = max(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_462050();
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl
index dcdb2c1..2cdde2a 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn max(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn max_4883ac() -> vec3<f32>{
   var res: vec3<f32> = max(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_4883ac();
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.dxc.hlsl
index 7ec8294..9ef2ae3 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 max_4883ac() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_4883ac()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.fxc.hlsl
index 7ec8294..9ef2ae3 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 max_4883ac() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_4883ac()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.glsl
index df4ec3e..cd130a7 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 max_4883ac() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 max_4883ac() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 max_4883ac() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 max_4883ac() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.wgsl
index 66479f0..b09c199 100644
--- a/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/4883ac.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn max_4883ac() -> vec3<f32> {
   var res : vec3<f32> = max(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_4883ac();
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl
index 8b44370..73177db 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn max(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
 fn max_85e6bc() -> vec4<i32>{
   var res: vec4<i32> = max(vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_85e6bc();
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.dxc.hlsl
index e023916..4bfe97a 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 max_85e6bc() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_85e6bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.fxc.hlsl
index e023916..4bfe97a 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 max_85e6bc() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_85e6bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.glsl
index 0c9e79e..e572d8e 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 max_85e6bc() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 max_85e6bc() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.wgsl
index 8bc9f91..d91babe 100644
--- a/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/85e6bc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn max_85e6bc() -> vec4<i32> {
   var res : vec4<i32> = max(vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_85e6bc();
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl b/test/tint/builtins/gen/literal/max/a93419.wgsl
index f10a65f..e516707 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn max(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn max_a93419() -> vec4<f32>{
   var res: vec4<f32> = max(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_a93419();
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.dxc.hlsl
index bc15515..a2ce485 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 max_a93419() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_a93419()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.fxc.hlsl
index bc15515..a2ce485 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 max_a93419() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_a93419()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.glsl
index 43ca78c..4c2bc8d 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 max_a93419() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 max_a93419() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.wgsl
index 44b667d..51267a2 100644
--- a/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/a93419.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn max_a93419() -> vec4<f32> {
   var res : vec4<f32> = max(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_a93419();
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl
index 58a1a42..2ca3295 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn max(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
 fn max_b1b73a() -> vec3<u32>{
   var res: vec3<u32> = max(vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_b1b73a();
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.dxc.hlsl
index 4ce3062..f16f649 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 max_b1b73a() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_b1b73a()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.fxc.hlsl
index 4ce3062..f16f649 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 max_b1b73a() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_b1b73a()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.glsl
index f7eba61..35aac6b 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 max_b1b73a() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 max_b1b73a() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 max_b1b73a() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 max_b1b73a() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.wgsl
index 1ba304d..790eb7f 100644
--- a/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/b1b73a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn max_b1b73a() -> vec3<u32> {
   var res : vec3<u32> = max(vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_b1b73a();
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl
index f557bf8..e6ffa42 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn max(i32, i32) -> i32
 fn max_ce7c30() -> i32{
   var res: i32 = max(1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_ce7c30();
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.dxc.hlsl
index fe2f730..4429ea4 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int max_ce7c30() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_ce7c30()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.fxc.hlsl
index fe2f730..4429ea4 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int max_ce7c30() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_ce7c30()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.glsl
index f79aa1d..0745864 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int max_ce7c30() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int max_ce7c30() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.wgsl
index 96171a3..79c9409 100644
--- a/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/ce7c30.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn max_ce7c30() -> i32 {
   var res : i32 = max(1i, 1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_ce7c30();
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl
index 17ddf67..36e1e9c 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn max(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn max_e14f2b() -> vec4<f16>{
   var res: vec4<f16> = max(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e14f2b();
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.dxc.hlsl
index 26441a6..8b51143 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> max_e14f2b() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
   return;
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.glsl
index 9e99e9a..25dcfb2 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 max_e14f2b() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 max_e14f2b() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.wgsl
index 0c83894..fce90d8 100644
--- a/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/e14f2b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn max_e14f2b() -> vec4<f16> {
   var res : vec4<f16> = max(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e14f2b();
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl
index c1347dc..0a8ec6e 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn max(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
 fn max_e8192f() -> vec2<i32>{
   var res: vec2<i32> = max(vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e8192f();
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.dxc.hlsl
index 6647b38..fb0e73c 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 max_e8192f() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_e8192f()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.fxc.hlsl
index 6647b38..fb0e73c 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 max_e8192f() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_e8192f()));
   return;
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.glsl
index 9687cc1..48773ac 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 max_e8192f() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 max_e8192f() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.wgsl
index f9f2d00..02d3fb1 100644
--- a/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/max/e8192f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn max_e8192f() -> vec2<i32> {
   var res : vec2<i32> = max(vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e8192f();
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl
index cfeddb1..2b583c9 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn min(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
 fn min_03c7e3() -> vec2<i32>{
   var res: vec2<i32> = min(vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_03c7e3();
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.dxc.hlsl
index 6eb3832..315bee5 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 min_03c7e3() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_03c7e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.fxc.hlsl
index 6eb3832..315bee5 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 min_03c7e3() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_03c7e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.glsl
index 3fd3c5b..b120e59 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 min_03c7e3() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 min_03c7e3() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.wgsl
index 57bc5dc..d1b610c 100644
--- a/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/03c7e3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn min_03c7e3() -> vec2<i32> {
   var res : vec2<i32> = min(vec2<i32>(1i), vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_03c7e3();
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl
index c331bb6..55a96b8 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn min(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
 fn min_0dc614() -> vec4<u32>{
   var res: vec4<u32> = min(vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_0dc614();
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.dxc.hlsl
index 0feca0f..857072a 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 min_0dc614() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_0dc614()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.fxc.hlsl
index 0feca0f..857072a 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 min_0dc614() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_0dc614()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.glsl
index 2e7df55..ccc39c9 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 min_0dc614() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 min_0dc614() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.wgsl
index b30d02d..10cdd11 100644
--- a/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/0dc614.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn min_0dc614() -> vec4<u32> {
   var res : vec4<u32> = min(vec4<u32>(1u), vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_0dc614();
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl
index 270c5db..97faecf 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn min(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
 fn min_3941e1() -> vec4<i32>{
   var res: vec4<i32> = min(vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_3941e1();
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.dxc.hlsl
index 06e4240..afe1fd4 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 min_3941e1() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_3941e1()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.fxc.hlsl
index 06e4240..afe1fd4 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 min_3941e1() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_3941e1()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.glsl
index c7e7849..295fb1c 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 min_3941e1() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 min_3941e1() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.wgsl
index 005e458..d013ab6 100644
--- a/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/3941e1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn min_3941e1() -> vec4<i32> {
   var res : vec4<i32> = min(vec4<i32>(1i), vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_3941e1();
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl
index 384f575..62b2675 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn min(u32, u32) -> u32
 fn min_46c5d3() -> u32{
   var res: u32 = min(1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_46c5d3();
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.dxc.hlsl
index ecce04b..f08974a 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint min_46c5d3() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_46c5d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.fxc.hlsl
index ecce04b..f08974a 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint min_46c5d3() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_46c5d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.glsl
index 77f6140..bb8ae73 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint min_46c5d3() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint min_46c5d3() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.wgsl
index bf51c93..724b6f1 100644
--- a/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/46c5d3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn min_46c5d3() -> u32 {
   var res : u32 = min(1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_46c5d3();
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl
index e63966b..aca7bd9 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn min(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn min_7c710a() -> vec4<f16>{
   var res: vec4<f16> = min(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_7c710a();
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.dxc.hlsl
index ebd35b1..868ef0e 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> min_7c710a() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
   return;
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.glsl
index 26106f4..556d4f7 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 min_7c710a() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 min_7c710a() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.wgsl
index 13502fe..4826670 100644
--- a/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/7c710a.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn min_7c710a() -> vec4<f16> {
   var res : vec4<f16> = min(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_7c710a();
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl
index df2bb1b..7cc7c1f 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn min(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
 fn min_82b28f() -> vec2<u32>{
   var res: vec2<u32> = min(vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_82b28f();
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.dxc.hlsl
index eacff16..850efaa 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 min_82b28f() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_82b28f()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.fxc.hlsl
index eacff16..850efaa 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 min_82b28f() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_82b28f()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.glsl
index 8887eac..e515c36 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 min_82b28f() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 min_82b28f() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.wgsl
index 31b04a1..fd2a993 100644
--- a/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/82b28f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn min_82b28f() -> vec2<u32> {
   var res : vec2<u32> = min(vec2<u32>(1u), vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_82b28f();
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl
index bdddc9f..60f3353 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn min(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn min_93cfc4() -> vec3<f32>{
   var res: vec3<f32> = min(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_93cfc4();
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.dxc.hlsl
index 16e940f..41ee01b 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 min_93cfc4() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_93cfc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.fxc.hlsl
index 16e940f..41ee01b 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 min_93cfc4() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_93cfc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.glsl
index 3eb6cfd..17162bd 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 min_93cfc4() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 min_93cfc4() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 min_93cfc4() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 min_93cfc4() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.wgsl
index 1173af7..bf55fa4 100644
--- a/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/93cfc4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn min_93cfc4() -> vec3<f32> {
   var res : vec3<f32> = min(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_93cfc4();
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl b/test/tint/builtins/gen/literal/min/a45171.wgsl
index 901ec5b..af6cf0b 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn min(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
 fn min_a45171() -> vec3<i32>{
   var res: vec3<i32> = min(vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_a45171();
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.dxc.hlsl
index b4e3134..3e62075 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 min_a45171() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_a45171()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.fxc.hlsl
index b4e3134..3e62075 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 min_a45171() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_a45171()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.glsl
index d1220a6..46746b4 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 min_a45171() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 min_a45171() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 min_a45171() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 min_a45171() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.wgsl
index c438309..a719eae 100644
--- a/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/a45171.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn min_a45171() -> vec3<i32> {
   var res : vec3<i32> = min(vec3<i32>(1i), vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_a45171();
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl
index 5e0077e..98cc3af 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn min(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn min_aa28ad() -> vec2<f32>{
   var res: vec2<f32> = min(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_aa28ad();
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.dxc.hlsl
index 89bbae0..136edf9 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 min_aa28ad() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_aa28ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.fxc.hlsl
index 89bbae0..136edf9 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 min_aa28ad() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_aa28ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.glsl
index f000b26..814de61 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 min_aa28ad() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 min_aa28ad() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.wgsl
index ac8b2b3..ccf8b76 100644
--- a/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/aa28ad.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn min_aa28ad() -> vec2<f32> {
   var res : vec2<f32> = min(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_aa28ad();
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl
index 6225b09..cbf01f7 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn min(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn min_ab0acd() -> vec3<f16>{
   var res: vec3<f16> = min(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ab0acd();
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.dxc.hlsl
index 2bffabd..b699586 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> min_ab0acd() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
   return;
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.glsl
index 5ef48a1..7bf7129 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 min_ab0acd() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 min_ab0acd() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.wgsl
index 9b4af2d..92a8481 100644
--- a/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/ab0acd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn min_ab0acd() -> vec3<f16> {
   var res : vec3<f16> = min(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ab0acd();
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl
index d90ede7..482cfe9 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn min(f16, f16) -> f16
 fn min_ac84d6() -> f16{
   var res: f16 = min(1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ac84d6();
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.dxc.hlsl
index 11a2e2b..39a8077 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t min_ac84d6() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, min_ac84d6());
   return;
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.glsl
index 1231e40..ac4e1e6 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t min_ac84d6() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t min_ac84d6() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.wgsl
index 8bb09ae..622b604 100644
--- a/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/ac84d6.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn min_ac84d6() -> f16 {
   var res : f16 = min(1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ac84d6();
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl b/test/tint/builtins/gen/literal/min/af326d.wgsl
index 796cc74..e80f9d0 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn min(f32, f32) -> f32
 fn min_af326d() -> f32{
   var res: f32 = min(1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_af326d();
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.dxc.hlsl
index d127fd2..3042393 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float min_af326d() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_af326d()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.fxc.hlsl
index d127fd2..3042393 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float min_af326d() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_af326d()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.glsl
index 164383c..7eab1fb 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float min_af326d() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float min_af326d() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.wgsl
index 0f78d3d..9c5d81a 100644
--- a/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/af326d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn min_af326d() -> f32 {
   var res : f32 = min(1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_af326d();
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl
index 9c2fdb1..ee2f368 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn min(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
 fn min_c70bb7() -> vec3<u32>{
   var res: vec3<u32> = min(vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c70bb7();
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.dxc.hlsl
index 2db77ce..58e0bfd 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 min_c70bb7() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_c70bb7()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.fxc.hlsl
index 2db77ce..58e0bfd 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 min_c70bb7() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_c70bb7()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.glsl
index 5712b1a..7d36aea 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 min_c70bb7() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 min_c70bb7() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 min_c70bb7() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 min_c70bb7() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.wgsl
index 2f78331..8451d00 100644
--- a/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/c70bb7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn min_c70bb7() -> vec3<u32> {
   var res : vec3<u32> = min(vec3<u32>(1u), vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c70bb7();
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl b/test/tint/builtins/gen/literal/min/c73147.wgsl
index 4e5de5f..43e6d91 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn min(i32, i32) -> i32
 fn min_c73147() -> i32{
   var res: i32 = min(1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c73147();
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.dxc.hlsl
index 201cdf7..70fd57f 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int min_c73147() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_c73147()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.fxc.hlsl
index 201cdf7..70fd57f 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int min_c73147() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_c73147()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.glsl
index 3b611f9..348f023 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int min_c73147() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int min_c73147() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.wgsl
index 93e29d4..11ca7c2 100644
--- a/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/c73147.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn min_c73147() -> i32 {
   var res : i32 = min(1i, 1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c73147();
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl
index dff2e0e..d62db9a 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn min(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn min_c76fa6() -> vec4<f32>{
   var res: vec4<f32> = min(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c76fa6();
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.dxc.hlsl
index 1009af6..e1aaf9f 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 min_c76fa6() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_c76fa6()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.fxc.hlsl
index 1009af6..e1aaf9f 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 min_c76fa6() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_c76fa6()));
   return;
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.glsl
index 3ad3364..5ba1693 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 min_c76fa6() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 min_c76fa6() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.wgsl
index b123ff9..393be78 100644
--- a/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/c76fa6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn min_c76fa6() -> vec4<f32> {
   var res : vec4<f32> = min(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c76fa6();
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl
index 55ae8e7..55f5621 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn min(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn min_e780f9() -> vec2<f16>{
   var res: vec2<f16> = min(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_e780f9();
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.dxc.hlsl
index 2cd37e9..b7af2fe 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> min_e780f9() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
   return;
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.glsl
index bbdb0f1..9cbe9f4 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 min_e780f9() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 min_e780f9() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.wgsl
index 8181c56..9c08841 100644
--- a/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/min/e780f9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn min_e780f9() -> vec2<f16> {
   var res : vec2<f16> = min(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_e780f9();
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl
index 72fc21b..71b5c3b 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn mix(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn mix_0c8c33() -> vec3<f32>{
   var res: vec3<f32> = mix(vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_0c8c33();
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.dxc.hlsl
index d2a9f96..4a93ed0 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_0c8c33() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_0c8c33()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.fxc.hlsl
index d2a9f96..4a93ed0 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_0c8c33() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_0c8c33()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.glsl
index 800a054..cc9f6dd 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 mix_0c8c33() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 mix_0c8c33() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 mix_0c8c33() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 mix_0c8c33() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.wgsl
index 86584f4..50cf2f8 100644
--- a/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/0c8c33.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn mix_0c8c33() -> vec3<f32> {
   var res : vec3<f32> = mix(vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_0c8c33();
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl
index 77be6e4..939cd0c 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn mix(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
 fn mix_1faeb1() -> vec4<f32>{
   var res: vec4<f32> = mix(vec4<f32>(1.f), vec4<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_1faeb1();
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.dxc.hlsl
index 5c2a599..77deae6 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_1faeb1() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_1faeb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.fxc.hlsl
index 5c2a599..77deae6 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_1faeb1() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_1faeb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.glsl
index 9eaeac4..a0f6383 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_1faeb1() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_1faeb1() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.wgsl
index 8c6ef44..0627b1a 100644
--- a/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/1faeb1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn mix_1faeb1() -> vec4<f32> {
   var res : vec4<f32> = mix(vec4<f32>(1.0f), vec4<f32>(1.0f), 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_1faeb1();
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl
index d6f8896..e452c75 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn mix(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
 fn mix_2fadab() -> vec2<f32>{
   var res: vec2<f32> = mix(vec2<f32>(1.f), vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_2fadab();
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.dxc.hlsl
index 4d0f1fd..63bfcf8 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_2fadab() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_2fadab()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.fxc.hlsl
index 4d0f1fd..63bfcf8 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_2fadab() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_2fadab()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.glsl
index 770dbef..893c3c0 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_2fadab() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_2fadab() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.wgsl
index eea0403..49707d6 100644
--- a/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/2fadab.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn mix_2fadab() -> vec2<f32> {
   var res : vec2<f32> = mix(vec2<f32>(1.0f), vec2<f32>(1.0f), 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_2fadab();
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl b/test/tint/builtins/gen/literal/mix/315264.wgsl
index 7c57b45..8f5b635 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn mix(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
 fn mix_315264() -> vec3<f32>{
   var res: vec3<f32> = mix(vec3<f32>(1.f), vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_315264();
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.dxc.hlsl
index 20112ea..b77efda 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_315264() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_315264()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.fxc.hlsl
index 20112ea..b77efda 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_315264() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_315264()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.glsl
index 0bb7cc9..e85578e 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 mix_315264() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 mix_315264() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 mix_315264() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 mix_315264() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.wgsl
index 6bacfe8..42ace68 100644
--- a/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/315264.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn mix_315264() -> vec3<f32> {
   var res : vec3<f32> = mix(vec3<f32>(1.0f), vec3<f32>(1.0f), 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_315264();
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl
index be5d1f8..2f28d0f 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn mix(f16, f16, f16) -> f16
 fn mix_38cbbb() -> f16{
   var res: f16 = mix(1.h, 1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_38cbbb();
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.dxc.hlsl
index 2a67c01..4895b00 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t mix_38cbbb() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, mix_38cbbb());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.glsl
index e5c2b2c..c4e484b 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t mix_38cbbb() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t mix_38cbbb() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.wgsl
index a18b515..0bd9328 100644
--- a/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/38cbbb.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn mix_38cbbb() -> f16 {
   var res : f16 = mix(1.0h, 1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_38cbbb();
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl
index cde9522..41a8ac2 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn mix(f32, f32, f32) -> f32
 fn mix_4f0b5e() -> f32{
   var res: f32 = mix(1.f, 1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_4f0b5e();
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.dxc.hlsl
index e4f7948..5871933 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float mix_4f0b5e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(mix_4f0b5e()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.fxc.hlsl
index e4f7948..5871933 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float mix_4f0b5e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(mix_4f0b5e()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.glsl
index 5da9cac..5fb3109 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float mix_4f0b5e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float mix_4f0b5e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.wgsl
index f0825d6..97bc711 100644
--- a/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/4f0b5e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn mix_4f0b5e() -> f32 {
   var res : f32 = mix(1.0f, 1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_4f0b5e();
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl
index ccb1f75..d2347e5 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn mix(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn mix_63f2fd() -> vec3<f16>{
   var res: vec3<f16> = mix(vec3<f16>(1.h), vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_63f2fd();
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.dxc.hlsl
index d749ff2..f7df3ba 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> mix_63f2fd() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.glsl
index 59cc526..98bffac 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_63f2fd() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_63f2fd() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.wgsl
index 484ca10..53fdb88 100644
--- a/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/63f2fd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn mix_63f2fd() -> vec3<f16> {
   var res : vec3<f16> = mix(vec3<f16>(1.0h), vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_63f2fd();
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl
index c482b90..6fe324b 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn mix(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn mix_6f8adc() -> vec2<f32>{
   var res: vec2<f32> = mix(vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_6f8adc();
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.dxc.hlsl
index 807ef04..5ca6e87 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_6f8adc() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_6f8adc()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.fxc.hlsl
index 807ef04..5ca6e87 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_6f8adc() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_6f8adc()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.glsl
index b3ce8c4..b56f199 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_6f8adc() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_6f8adc() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.wgsl
index 9977c24..3a33ce1 100644
--- a/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/6f8adc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn mix_6f8adc() -> vec2<f32> {
   var res : vec2<f32> = mix(vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_6f8adc();
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl
index 293ad09..f3794f7 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn mix(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn mix_98ee3e() -> vec2<f16>{
   var res: vec2<f16> = mix(vec2<f16>(1.h), vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_98ee3e();
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.dxc.hlsl
index 2450c4d..34c93da 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> mix_98ee3e() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.glsl
index 3903cf7..712263e 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_98ee3e() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_98ee3e() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.wgsl
index 982aa0d..9b1b718 100644
--- a/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/98ee3e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn mix_98ee3e() -> vec2<f16> {
   var res : vec2<f16> = mix(vec2<f16>(1.0h), vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_98ee3e();
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl
index d04d66a..7ca9ef1 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn mix(vec<3, f16>, vec<3, f16>, f16) -> vec<3, f16>
 fn mix_c1aec6() -> vec3<f16>{
   var res: vec3<f16> = mix(vec3<f16>(1.h), vec3<f16>(1.h), 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c1aec6();
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.dxc.hlsl
index 7fda375..d35d29c 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> mix_c1aec6() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.glsl
index 4cd223d..fd2476e 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_c1aec6() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_c1aec6() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.wgsl
index baf36bd..60d709f 100644
--- a/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/c1aec6.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn mix_c1aec6() -> vec3<f16> {
   var res : vec3<f16> = mix(vec3<f16>(1.0h), vec3<f16>(1.0h), 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c1aec6();
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl
index 975f6c1..34654f4 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn mix(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn mix_c37ede() -> vec4<f32>{
   var res: vec4<f32> = mix(vec4<f32>(1.f), vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c37ede();
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.dxc.hlsl
index baef4bc..d745bc1 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_c37ede() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_c37ede()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.fxc.hlsl
index baef4bc..d745bc1 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_c37ede() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_c37ede()));
   return;
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.glsl
index 33a2b54..8c4d79d 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_c37ede() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_c37ede() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.wgsl
index 529d39d..41a41df 100644
--- a/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/c37ede.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn mix_c37ede() -> vec4<f32> {
   var res : vec4<f32> = mix(vec4<f32>(1.0f), vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c37ede();
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl
index 7bbbce6..d0641de 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn mix(vec<2, f16>, vec<2, f16>, f16) -> vec<2, f16>
 fn mix_e46a83() -> vec2<f16>{
   var res: vec2<f16> = mix(vec2<f16>(1.h), vec2<f16>(1.h), 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_e46a83();
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.dxc.hlsl
index 2bec8da..40b94c0 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> mix_e46a83() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.glsl
index 11c98ae..26a5ce3 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_e46a83() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_e46a83() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.wgsl
index e89ac57..37ca8f8 100644
--- a/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/e46a83.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn mix_e46a83() -> vec2<f16> {
   var res : vec2<f16> = mix(vec2<f16>(1.0h), vec2<f16>(1.0h), 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_e46a83();
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl
index 3dc5377..0fd4085 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn mix(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn mix_ee2468() -> vec4<f16>{
   var res: vec4<f16> = mix(vec4<f16>(1.h), vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_ee2468();
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.dxc.hlsl
index 894bf9b..9c426cb 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> mix_ee2468() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.glsl
index d339173..a2dbde5 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_ee2468() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_ee2468() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.wgsl
index d8f7d8c..be3dc4d 100644
--- a/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/ee2468.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn mix_ee2468() -> vec4<f16> {
   var res : vec4<f16> = mix(vec4<f16>(1.0h), vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_ee2468();
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl
index 9e4180d..d2fd533 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn mix(vec<4, f16>, vec<4, f16>, f16) -> vec<4, f16>
 fn mix_f1a543() -> vec4<f16>{
   var res: vec4<f16> = mix(vec4<f16>(1.h), vec4<f16>(1.h), 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_f1a543();
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.dxc.hlsl
index 73b8bb4..1c41b90 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> mix_f1a543() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
   return;
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.glsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.glsl
index 63f8d4d..0f9a154 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_f1a543() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_f1a543() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.wgsl
index d9d5d62..94572b5 100644
--- a/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/mix/f1a543.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn mix_f1a543() -> vec4<f16> {
   var res : vec4<f16> = mix(vec4<f16>(1.0h), vec4<f16>(1.0h), 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_f1a543();
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl
index 93039e4..a80e38a 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn normalize(vec<3, f16>) -> vec<3, f16>
 fn normalize_39d5ec() -> vec3<f16>{
   var res: vec3<f16> = normalize(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_39d5ec();
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl
index 9969e76..9195313 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> normalize_39d5ec() {
   vector<float16_t, 3> res = (float16_t(0.5771484375h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl
index fe50bee..16e2a3a 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 normalize_39d5ec() {
   f16vec3 res = f16vec3(0.5771484375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 normalize_39d5ec() {
   f16vec3 res = f16vec3(0.5771484375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.wgsl
index f2f0c9a..adcfaea 100644
--- a/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/39d5ec.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn normalize_39d5ec() -> vec3<f16> {
   var res : vec3<f16> = normalize(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_39d5ec();
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl
index 6cdb20d..064dac9 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn normalize(vec<3, f32>) -> vec<3, f32>
 fn normalize_64d8c0() -> vec3<f32>{
   var res: vec3<f32> = normalize(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_64d8c0();
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl
index ed597d7..63a0b94 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 normalize_64d8c0() {
   float3 res = (0.57735025882720947266f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl
index ed597d7..63a0b94 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 normalize_64d8c0() {
   float3 res = (0.57735025882720947266f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl
index 8a48acf..9ee44e0 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 normalize_64d8c0() {
-  vec3 res = vec3(0.57735025882720947266f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 normalize_64d8c0() {
+  vec3 res = vec3(0.57735025882720947266f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 normalize_64d8c0() {
-  vec3 res = vec3(0.57735025882720947266f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 normalize_64d8c0() {
+  vec3 res = vec3(0.57735025882720947266f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.wgsl
index 2f687c2..6effb7b 100644
--- a/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/64d8c0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn normalize_64d8c0() -> vec3<f32> {
   var res : vec3<f32> = normalize(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_64d8c0();
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl
index 9a06fa1..b6b1e30 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn normalize(vec<2, f16>) -> vec<2, f16>
 fn normalize_7990f3() -> vec2<f16>{
   var res: vec2<f16> = normalize(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_7990f3();
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.dxc.hlsl
index 92d2c6e..97eb6d6 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> normalize_7990f3() {
   vector<float16_t, 2> res = (float16_t(0.70703125h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.glsl
index d7863ab..0f8e432 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 normalize_7990f3() {
   f16vec2 res = f16vec2(0.70703125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 normalize_7990f3() {
   f16vec2 res = f16vec2(0.70703125hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.wgsl
index 06880c5..8a29e3e 100644
--- a/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/7990f3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn normalize_7990f3() -> vec2<f16> {
   var res : vec2<f16> = normalize(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_7990f3();
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl
index 2729a16..6269454 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn normalize(vec<4, f32>) -> vec<4, f32>
 fn normalize_9a0aab() -> vec4<f32>{
   var res: vec4<f32> = normalize(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_9a0aab();
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.dxc.hlsl
index 53f0294..cbbc201 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 normalize_9a0aab() {
   float4 res = (0.5f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.fxc.hlsl
index 53f0294..cbbc201 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 normalize_9a0aab() {
   float4 res = (0.5f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.glsl
index 4c97d58..ab35989 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 normalize_9a0aab() {
   vec4 res = vec4(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 normalize_9a0aab() {
   vec4 res = vec4(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.wgsl
index 46a3c92..c6d484e 100644
--- a/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/9a0aab.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn normalize_9a0aab() -> vec4<f32> {
   var res : vec4<f32> = normalize(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_9a0aab();
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl
index d1d23fc..54d3712 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn normalize(vec<4, f16>) -> vec<4, f16>
 fn normalize_b8cb8d() -> vec4<f16>{
   var res: vec4<f16> = normalize(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_b8cb8d();
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.dxc.hlsl
index 3e42c4a..c7f3a8b 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> normalize_b8cb8d() {
   vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.glsl
index 1d11c6c..920f1ce 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 normalize_b8cb8d() {
   f16vec4 res = f16vec4(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 normalize_b8cb8d() {
   f16vec4 res = f16vec4(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.wgsl
index 108ef6b..7dfd611 100644
--- a/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/b8cb8d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn normalize_b8cb8d() -> vec4<f16> {
   var res : vec4<f16> = normalize(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_b8cb8d();
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl
index 58c5f51..282cdc6 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn normalize(vec<2, f32>) -> vec<2, f32>
 fn normalize_fc2ef1() -> vec2<f32>{
   var res: vec2<f32> = normalize(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_fc2ef1();
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl
index 23aa7e2d..7e3f450 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 normalize_fc2ef1() {
   float2 res = (0.70710676908493041992f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl
index 23aa7e2d..7e3f450 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 normalize_fc2ef1() {
   float2 res = (0.70710676908493041992f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
   return;
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl
index ba867b6..3af5236 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 normalize_fc2ef1() {
   vec2 res = vec2(0.70710676908493041992f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 normalize_fc2ef1() {
   vec2 res = vec2(0.70710676908493041992f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.wgsl
index 7c5a3f3..8c9c3ca 100644
--- a/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/normalize/fc2ef1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn normalize_fc2ef1() -> vec2<f32> {
   var res : vec2<f32> = normalize(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_fc2ef1();
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl
index f9f0525..78d7c06 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack2x16float(vec2<f32>) -> u32
 fn pack2x16float_0e97b3() -> u32{
   var res: u32 = pack2x16float(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16float_0e97b3();
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
index 6249969..9b6e88b 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16float_0e97b3() {
   uint res = 1006648320u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16float_0e97b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
index 6249969..9b6e88b 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16float_0e97b3() {
   uint res = 1006648320u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16float_0e97b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl
index fa51908..461ce7a 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16float_0e97b3() {
   uint res = 1006648320u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16float_0e97b3() {
   uint res = 1006648320u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl
index 752fa59..cf6ce24 100644
--- a/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16float/0e97b3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack2x16float_0e97b3() -> u32 {
   var res : u32 = pack2x16float(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16float_0e97b3();
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl
index f62fdbe..7d0158e 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack2x16snorm(vec2<f32>) -> u32
 fn pack2x16snorm_6c169b() -> u32{
   var res: u32 = pack2x16snorm(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16snorm_6c169b();
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
index e11e83f..749edb6 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16snorm_6c169b() {
   uint res = 2147450879u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16snorm_6c169b()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
index e11e83f..749edb6 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16snorm_6c169b() {
   uint res = 2147450879u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16snorm_6c169b()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl
index f4450fd..a263f47 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16snorm_6c169b() {
   uint res = 2147450879u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16snorm_6c169b() {
   uint res = 2147450879u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl
index 9f8c02a..d989da1 100644
--- a/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16snorm/6c169b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack2x16snorm_6c169b() -> u32 {
   var res : u32 = pack2x16snorm(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16snorm_6c169b();
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl
index 2f2d7dd..f29d975 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack2x16unorm(vec2<f32>) -> u32
 fn pack2x16unorm_0f08e4() -> u32{
   var res: u32 = pack2x16unorm(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16unorm_0f08e4();
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
index 687c95d..cec6cb2 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16unorm_0f08e4() {
   uint res = 4294967295u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16unorm_0f08e4()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
index 687c95d..cec6cb2 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16unorm_0f08e4() {
   uint res = 4294967295u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16unorm_0f08e4()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl
index ade692f..ff6c109 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16unorm_0f08e4() {
   uint res = 4294967295u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16unorm_0f08e4() {
   uint res = 4294967295u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl
index c886a74..715f1d7 100644
--- a/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack2x16unorm/0f08e4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack2x16unorm_0f08e4() -> u32 {
   var res : u32 = pack2x16unorm(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16unorm_0f08e4();
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl
index 011a8ef..f5eab706 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4x8snorm(vec4<f32>) -> u32
 fn pack4x8snorm_4d22e7() -> u32{
   var res: u32 = pack4x8snorm(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8snorm_4d22e7();
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
index 0600635..0fb707b 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8snorm_4d22e7() {
   uint res = 2139062143u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8snorm_4d22e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
index 0600635..0fb707b 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8snorm_4d22e7() {
   uint res = 2139062143u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8snorm_4d22e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl
index 95fb68c..a287064 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8snorm_4d22e7() {
   uint res = 2139062143u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8snorm_4d22e7() {
   uint res = 2139062143u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl
index 27d8ca8..fd0112b 100644
--- a/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8snorm/4d22e7.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4x8snorm_4d22e7() -> u32 {
   var res : u32 = pack4x8snorm(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8snorm_4d22e7();
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl
index 094f41e..3456421 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4x8unorm(vec4<f32>) -> u32
 fn pack4x8unorm_95c456() -> u32{
   var res: u32 = pack4x8unorm(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8unorm_95c456();
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
index a2c52cb..ac6dcd8 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8unorm_95c456() {
   uint res = 4294967295u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8unorm_95c456()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
index a2c52cb..ac6dcd8 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8unorm_95c456() {
   uint res = 4294967295u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8unorm_95c456()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl
index d59a603..56c747c 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8unorm_95c456() {
   uint res = 4294967295u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8unorm_95c456() {
   uint res = 4294967295u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl
index aaa039e..74e9775 100644
--- a/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4x8unorm/95c456.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4x8unorm_95c456() -> u32 {
   var res : u32 = pack4x8unorm(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8unorm_95c456();
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl
index 5b04130..eec68f8 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xI8(vec4<i32>) -> u32
 fn pack4xI8_bfce01() -> u32{
   var res: u32 = pack4xI8(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8_bfce01();
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.dxc.hlsl
index d9f396f..6d2acaa 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8_bfce01() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8_bfce01()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.fxc.hlsl
index d9f396f..6d2acaa 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8_bfce01() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8_bfce01()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.glsl
index d68e130..7cf4a88 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8_bfce01() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8_bfce01() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.wgsl
index db45ce9..59b759a 100644
--- a/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xI8/bfce01.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xI8_bfce01() -> u32 {
   var res : u32 = pack4xI8(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8_bfce01();
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl
index 3541f37..8581a50 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xI8Clamp(vec4<i32>) -> u32
 fn pack4xI8Clamp_e42b2a() -> u32{
   var res: u32 = pack4xI8Clamp(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8Clamp_e42b2a();
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl
index aa38655..165c8b3 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8Clamp_e42b2a() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8Clamp_e42b2a()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl
index aa38655..165c8b3 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8Clamp_e42b2a() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8Clamp_e42b2a()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.glsl
index b0140a1..b588c6f 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8Clamp_e42b2a() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8Clamp_e42b2a() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl
index 2dd07a4..6320269 100644
--- a/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xI8Clamp_e42b2a() -> u32 {
   var res : u32 = pack4xI8Clamp(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8Clamp_e42b2a();
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl
index 8170048..6a1afbe 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xU8(vec4<u32>) -> u32
 fn pack4xU8_b70b53() -> u32{
   var res: u32 = pack4xU8(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8_b70b53();
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.dxc.hlsl
index 57c5e77..7296896 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8_b70b53() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8_b70b53()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.fxc.hlsl
index 57c5e77..7296896 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8_b70b53() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8_b70b53()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.glsl
index 674edd7..ace7aa1 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8_b70b53() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8_b70b53() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.wgsl
index 5207a4f..7d83a00 100644
--- a/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xU8/b70b53.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xU8_b70b53() -> u32 {
   var res : u32 = pack4xU8(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8_b70b53();
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl
index 64203ba..434caa9 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xU8Clamp(vec4<u32>) -> u32
 fn pack4xU8Clamp_6b8c1b() -> u32{
   var res: u32 = pack4xU8Clamp(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8Clamp_6b8c1b();
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl
index 65edb50..4eed248 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8Clamp_6b8c1b() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8Clamp_6b8c1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl
index 65edb50..4eed248 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8Clamp_6b8c1b() {
   uint res = 16843009u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8Clamp_6b8c1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl
index c72d702..a424141 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8Clamp_6b8c1b() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8Clamp_6b8c1b() {
   uint res = 16843009u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl
index 4d4b244..0b9f7f8 100644
--- a/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xU8Clamp_6b8c1b() -> u32 {
   var res : u32 = pack4xU8Clamp(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8Clamp_6b8c1b();
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl
index 62f40d6..4f35950 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn pow(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn pow_04a908() -> vec4<f32>{
   var res: vec4<f32> = pow(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_04a908();
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.dxc.hlsl
index 79aece5..42b237e 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 pow_04a908() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(pow_04a908()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.fxc.hlsl
index 79aece5..42b237e 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 pow_04a908() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(pow_04a908()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.glsl
index dddd339..9af0087 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 pow_04a908() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 pow_04a908() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.wgsl
index 55de4bc..291260d 100644
--- a/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/04a908.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn pow_04a908() -> vec4<f32> {
   var res : vec4<f32> = pow(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_04a908();
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl
index 498e6c7d..c62c908 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn pow(f32, f32) -> f32
 fn pow_46e029() -> f32{
   var res: f32 = pow(1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_46e029();
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.dxc.hlsl
index d60875e..dd561ca 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float pow_46e029() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pow_46e029()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.fxc.hlsl
index d60875e..dd561ca 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float pow_46e029() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pow_46e029()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.glsl
index 2a1b812..d2a714e 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float pow_46e029() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float pow_46e029() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.wgsl
index d224182..c4cef0f 100644
--- a/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/46e029.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn pow_46e029() -> f32 {
   var res : f32 = pow(1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_46e029();
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl
index e4007f1..709ad5b 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn pow(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn pow_4a46c9() -> vec3<f32>{
   var res: vec3<f32> = pow(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4a46c9();
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.dxc.hlsl
index 54687a3..4a17314 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 pow_4a46c9() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(pow_4a46c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.fxc.hlsl
index 54687a3..4a17314 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 pow_4a46c9() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(pow_4a46c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.glsl
index 5377747..a53fd92 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 pow_4a46c9() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 pow_4a46c9() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 pow_4a46c9() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 pow_4a46c9() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.wgsl
index 755ae28..b61bab2 100644
--- a/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/4a46c9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn pow_4a46c9() -> vec3<f32> {
   var res : vec3<f32> = pow(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4a46c9();
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl
index 34e1cf9..5394b71 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn pow(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn pow_4f33b2() -> vec4<f16>{
   var res: vec4<f16> = pow(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4f33b2();
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.dxc.hlsl
index 380ace0..9b3b73d 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> pow_4f33b2() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
   return;
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.glsl
index 2c51e11..b6ac9be 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 pow_4f33b2() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 pow_4f33b2() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.wgsl
index 01c0f39..438041b 100644
--- a/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/4f33b2.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn pow_4f33b2() -> vec4<f16> {
   var res : vec4<f16> = pow(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4f33b2();
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl
index 6ae2088..294e57b 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn pow(f16, f16) -> f16
 fn pow_ce9ef5() -> f16{
   var res: f16 = pow(1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_ce9ef5();
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.dxc.hlsl
index aa6e726..7b94bc6 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t pow_ce9ef5() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
   return;
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.glsl
index 02045fa..c70a1f5 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t pow_ce9ef5() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t pow_ce9ef5() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.wgsl
index 4358c1a..dd1b13b 100644
--- a/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/ce9ef5.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn pow_ce9ef5() -> f16 {
   var res : f16 = pow(1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_ce9ef5();
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl
index 848c6bc..a6de086 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn pow(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn pow_e60ea5() -> vec2<f32>{
   var res: vec2<f32> = pow(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_e60ea5();
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.dxc.hlsl
index 07ed58c..0b24693 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 pow_e60ea5() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(pow_e60ea5()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.fxc.hlsl
index 07ed58c..0b24693 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 pow_e60ea5() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(pow_e60ea5()));
   return;
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.glsl
index f98ef20..31080cf 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 pow_e60ea5() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 pow_e60ea5() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.wgsl
index c67d771..5083396 100644
--- a/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/e60ea5.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn pow_e60ea5() -> vec2<f32> {
   var res : vec2<f32> = pow(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_e60ea5();
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl
index 4ecdea0..cb188a8 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn pow(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn pow_f37b25() -> vec2<f16>{
   var res: vec2<f16> = pow(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_f37b25();
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.dxc.hlsl
index 669feb4..63b1bba 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> pow_f37b25() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
   return;
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.glsl
index a3d1481..dd1bb66 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 pow_f37b25() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 pow_f37b25() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.wgsl
index a1ace3b..7709ed2 100644
--- a/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/f37b25.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn pow_f37b25() -> vec2<f16> {
   var res : vec2<f16> = pow(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_f37b25();
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl
index 9f99476..8cbb399 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn pow(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn pow_fa5429() -> vec3<f16>{
   var res: vec3<f16> = pow(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_fa5429();
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.dxc.hlsl
index 34c347f..e0f6b93 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> pow_fa5429() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
   return;
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.glsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.glsl
index bfe643a..0dd9668 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 pow_fa5429() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 pow_fa5429() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.wgsl
index 3a3bfec..b1fad7c 100644
--- a/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/pow/fa5429.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn pow_fa5429() -> vec3<f16> {
   var res : vec3<f16> = pow(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_fa5429();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl
index 98fd63e..28c85b4 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn quantizeToF16(f32) -> f32
 fn quantizeToF16_12e50e() -> f32{
   var res: f32 = quantizeToF16(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_12e50e();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl
index 2e94054..6af7c79 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float quantizeToF16_12e50e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl
index 2e94054..6af7c79 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float quantizeToF16_12e50e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.glsl
index 6d8fd60..5046b6e 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float quantizeToF16_12e50e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float quantizeToF16_12e50e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.wgsl
index 7572680..0f9ee58 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/12e50e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn quantizeToF16_12e50e() -> f32 {
   var res : f32 = quantizeToF16(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_12e50e();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl
index d2b9ef0..ce6f5b9 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn quantizeToF16(vec<2, f32>) -> vec<2, f32>
 fn quantizeToF16_2cddf3() -> vec2<f32>{
   var res: vec2<f32> = quantizeToF16(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_2cddf3();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl
index 269842f..b959c58 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 quantizeToF16_2cddf3() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl
index 269842f..b959c58 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 quantizeToF16_2cddf3() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.glsl
index 89e6e0b..a173f1e 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 quantizeToF16_2cddf3() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 quantizeToF16_2cddf3() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.wgsl
index efc6c0d..cde09aa 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/2cddf3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn quantizeToF16_2cddf3() -> vec2<f32> {
   var res : vec2<f32> = quantizeToF16(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_2cddf3();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl
index 4418228..ebd02dd 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn quantizeToF16(vec<4, f32>) -> vec<4, f32>
 fn quantizeToF16_cba294() -> vec4<f32>{
   var res: vec4<f32> = quantizeToF16(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_cba294();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.dxc.hlsl
index 67a9bbb..97285f6 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 quantizeToF16_cba294() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.fxc.hlsl
index 67a9bbb..97285f6 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 quantizeToF16_cba294() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.glsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.glsl
index a83ebf2..358e392 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 quantizeToF16_cba294() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 quantizeToF16_cba294() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.wgsl
index 0f136d6..466ef47 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/cba294.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn quantizeToF16_cba294() -> vec4<f32> {
   var res : vec4<f32> = quantizeToF16(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_cba294();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl
index 2fa3533..dc9ea85 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn quantizeToF16(vec<3, f32>) -> vec<3, f32>
 fn quantizeToF16_e8fd14() -> vec3<f32>{
   var res: vec3<f32> = quantizeToF16(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_e8fd14();
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl
index cb27417..4b4374d 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 quantizeToF16_e8fd14() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl
index cb27417..4b4374d 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 quantizeToF16_e8fd14() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
   return;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.glsl
index 063aaef..e91f063 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 quantizeToF16_e8fd14() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 quantizeToF16_e8fd14() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 quantizeToF16_e8fd14() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 quantizeToF16_e8fd14() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.wgsl
index 74e686a..383c2cb 100644
--- a/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/quantizeToF16/e8fd14.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn quantizeToF16_e8fd14() -> vec3<f32> {
   var res : vec3<f32> = quantizeToF16(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_e8fd14();
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl
index b2977ed..d322239 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn radians(vec<4, f32>) -> vec<4, f32>
 fn radians_09b7fc() -> vec4<f32>{
   var res: vec4<f32> = radians(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_09b7fc();
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
index c58c957..40ee16e 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 radians_09b7fc() {
   float4 res = (0.01745329238474369049f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(radians_09b7fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
index c58c957..40ee16e 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 radians_09b7fc() {
   float4 res = (0.01745329238474369049f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(radians_09b7fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
index 44d504a..3a4d996 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 radians_09b7fc() {
   vec4 res = vec4(0.01745329238474369049f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 radians_09b7fc() {
   vec4 res = vec4(0.01745329238474369049f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.wgsl
index 1c17572..5420953 100644
--- a/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/09b7fc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn radians_09b7fc() -> vec4<f32> {
   var res : vec4<f32> = radians(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_09b7fc();
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl
index eb27151..c8a4361 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn radians(f16) -> f16
 fn radians_208fd9() -> f16{
   var res: f16 = radians(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_208fd9();
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
index 95ea756..bdce766 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t radians_208fd9() {
   float16_t res = float16_t(0.0174407958984375h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, radians_208fd9());
   return;
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
index 162481c..ceb162c 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t radians_208fd9() {
   float16_t res = 0.0174407958984375hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t radians_208fd9() {
   float16_t res = 0.0174407958984375hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.wgsl
index f1a6a02..4ff0074 100644
--- a/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/208fd9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn radians_208fd9() -> f16 {
   var res : f16 = radians(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_208fd9();
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl
index 3633e79..658c3a8 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn radians(vec<4, f16>) -> vec<4, f16>
 fn radians_44f20b() -> vec4<f16>{
   var res: vec4<f16> = radians(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_44f20b();
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
index 07912cd..944d115 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> radians_44f20b() {
   vector<float16_t, 4> res = (float16_t(0.0174407958984375h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
   return;
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
index c7a95ca..293b627 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 radians_44f20b() {
   f16vec4 res = f16vec4(0.0174407958984375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 radians_44f20b() {
   f16vec4 res = f16vec4(0.0174407958984375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.wgsl
index 08b63cd..7398dc9 100644
--- a/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/44f20b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn radians_44f20b() -> vec4<f16> {
   var res : vec4<f16> = radians(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_44f20b();
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl
index 2c39d70..80348fd 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn radians(vec<2, f32>) -> vec<2, f32>
 fn radians_61687a() -> vec2<f32>{
   var res: vec2<f32> = radians(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_61687a();
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
index da314a0..7201836 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 radians_61687a() {
   float2 res = (0.01745329238474369049f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(radians_61687a()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
index da314a0..7201836 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 radians_61687a() {
   float2 res = (0.01745329238474369049f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(radians_61687a()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
index dedb8e2..2296076 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 radians_61687a() {
   vec2 res = vec2(0.01745329238474369049f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 radians_61687a() {
   vec2 res = vec2(0.01745329238474369049f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.wgsl
index 7b498ac..2bbd661 100644
--- a/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/61687a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn radians_61687a() -> vec2<f32> {
   var res : vec2<f32> = radians(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_61687a();
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl
index 99cb4c1..27516a7 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn radians(f32) -> f32
 fn radians_6b0ff2() -> f32{
   var res: f32 = radians(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_6b0ff2();
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
index 9df7359..e340182 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float radians_6b0ff2() {
   float res = 0.01745329238474369049f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(radians_6b0ff2()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
index 9df7359..e340182 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float radians_6b0ff2() {
   float res = 0.01745329238474369049f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(radians_6b0ff2()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
index 0a4724f..134d2e6 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float radians_6b0ff2() {
   float res = 0.01745329238474369049f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float radians_6b0ff2() {
   float res = 0.01745329238474369049f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.wgsl
index 647598a..5629017 100644
--- a/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/6b0ff2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn radians_6b0ff2() -> f32 {
   var res : f32 = radians(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_6b0ff2();
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl
index 342ff07..69f346e 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn radians(vec<3, f16>) -> vec<3, f16>
 fn radians_7ea4c7() -> vec3<f16>{
   var res: vec3<f16> = radians(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_7ea4c7();
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
index 732853e..8c48f45 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> radians_7ea4c7() {
   vector<float16_t, 3> res = (float16_t(0.0174407958984375h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
   return;
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
index e693c3c..d07a7f5 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 radians_7ea4c7() {
   f16vec3 res = f16vec3(0.0174407958984375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 radians_7ea4c7() {
   f16vec3 res = f16vec3(0.0174407958984375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.wgsl
index 45c5b11..f17bbb5 100644
--- a/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/7ea4c7.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn radians_7ea4c7() -> vec3<f16> {
   var res : vec3<f16> = radians(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_7ea4c7();
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl
index 8112ed1..94aea93 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn radians(vec<3, f32>) -> vec<3, f32>
 fn radians_f96258() -> vec3<f32>{
   var res: vec3<f32> = radians(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_f96258();
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
index 3f943e9..934cf78 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 radians_f96258() {
   float3 res = (0.01745329238474369049f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(radians_f96258()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
index 3f943e9..934cf78 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 radians_f96258() {
   float3 res = (0.01745329238474369049f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(radians_f96258()));
   return;
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
index 8499dae..be65425 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 radians_f96258() {
-  vec3 res = vec3(0.01745329238474369049f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 radians_f96258() {
+  vec3 res = vec3(0.01745329238474369049f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 radians_f96258() {
-  vec3 res = vec3(0.01745329238474369049f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 radians_f96258() {
+  vec3 res = vec3(0.01745329238474369049f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.wgsl
index 9d861fb..762e0cd 100644
--- a/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/f96258.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn radians_f96258() -> vec3<f32> {
   var res : vec3<f32> = radians(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_f96258();
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl
index ac3100a..be4dd13 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn radians(vec<2, f16>) -> vec<2, f16>
 fn radians_fbacf0() -> vec2<f16>{
   var res: vec2<f16> = radians(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_fbacf0();
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
index 2fb4f3f..362d4d6 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> radians_fbacf0() {
   vector<float16_t, 2> res = (float16_t(0.0174407958984375h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
   return;
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
index fca3ef0..8a8b2bd 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 radians_fbacf0() {
   f16vec2 res = f16vec2(0.0174407958984375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 radians_fbacf0() {
   f16vec2 res = f16vec2(0.0174407958984375hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.wgsl
index 9aa7f3f..dc9ef0c 100644
--- a/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/radians/fbacf0.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn radians_fbacf0() -> vec2<f16> {
   var res : vec2<f16> = radians(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_fbacf0();
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl
index 974ced2..7dd1170 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn reflect(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn reflect_05357e() -> vec4<f32>{
   var res: vec4<f32> = reflect(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_05357e();
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.dxc.hlsl
index 1c39c66..7252f9b 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 reflect_05357e() {
   float4 res = (-7.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reflect_05357e()));
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.fxc.hlsl
index 1c39c66..7252f9b 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 reflect_05357e() {
   float4 res = (-7.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reflect_05357e()));
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.glsl
index a33ec16..375b4ea 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 reflect_05357e() {
   vec4 res = vec4(-7.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 reflect_05357e() {
   vec4 res = vec4(-7.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.wgsl
index c32f295..6302a282 100644
--- a/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/05357e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn reflect_05357e() -> vec4<f32> {
   var res : vec4<f32> = reflect(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_05357e();
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl
index f8dd579..aec8598 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn reflect(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn reflect_310de5() -> vec4<f16>{
   var res: vec4<f16> = reflect(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_310de5();
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.dxc.hlsl
index 8d23d810..eeb795c 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> reflect_310de5() {
   vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.glsl
index 3abf6c1..21a36bb 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 reflect_310de5() {
   f16vec4 res = f16vec4(-7.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 reflect_310de5() {
   f16vec4 res = f16vec4(-7.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.wgsl
index bcf117a..872eeb6 100644
--- a/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/310de5.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn reflect_310de5() -> vec4<f16> {
   var res : vec4<f16> = reflect(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_310de5();
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl
index 4c9ee9c..cd653c4 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn reflect(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn reflect_61ca21() -> vec3<f16>{
   var res: vec3<f16> = reflect(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_61ca21();
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.dxc.hlsl
index 5b3c83e..f22211a 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> reflect_61ca21() {
   vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.glsl
index 4132801..78deb89 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 reflect_61ca21() {
   f16vec3 res = f16vec3(-5.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 reflect_61ca21() {
   f16vec3 res = f16vec3(-5.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.wgsl
index 20829be..30ff059 100644
--- a/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/61ca21.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn reflect_61ca21() -> vec3<f16> {
   var res : vec3<f16> = reflect(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_61ca21();
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl
index 80358f6..502768b 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn reflect(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn reflect_b61e10() -> vec2<f32>{
   var res: vec2<f32> = reflect(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_b61e10();
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.dxc.hlsl
index 8b17731..1fe6d11 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 reflect_b61e10() {
   float2 res = (-3.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reflect_b61e10()));
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.fxc.hlsl
index 8b17731..1fe6d11 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 reflect_b61e10() {
   float2 res = (-3.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reflect_b61e10()));
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.glsl
index 5a0f4bb..b3a1ee6 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 reflect_b61e10() {
   vec2 res = vec2(-3.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 reflect_b61e10() {
   vec2 res = vec2(-3.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.wgsl
index 0ffbf79..f7f0fab 100644
--- a/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/b61e10.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn reflect_b61e10() -> vec2<f32> {
   var res : vec2<f32> = reflect(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_b61e10();
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl
index 6ef471a..bc9b32b 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn reflect(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn reflect_bb15ac() -> vec2<f16>{
   var res: vec2<f16> = reflect(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_bb15ac();
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.dxc.hlsl
index 0e4ba90..19ab1df 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> reflect_bb15ac() {
   vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.glsl
index 8b5ead9..895dbae 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 reflect_bb15ac() {
   f16vec2 res = f16vec2(-3.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 reflect_bb15ac() {
   f16vec2 res = f16vec2(-3.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.wgsl
index cd7c642..86ce6ec 100644
--- a/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/bb15ac.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn reflect_bb15ac() -> vec2<f16> {
   var res : vec2<f16> = reflect(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_bb15ac();
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl
index 81ad688..826470a 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn reflect(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn reflect_f47fdb() -> vec3<f32>{
   var res: vec3<f32> = reflect(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_f47fdb();
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.dxc.hlsl
index e9eb11a..4343c21 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 reflect_f47fdb() {
   float3 res = (-5.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.fxc.hlsl
index e9eb11a..4343c21 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 reflect_f47fdb() {
   float3 res = (-5.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
   return;
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.glsl
index e722f20..48b41bd 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 reflect_f47fdb() {
-  vec3 res = vec3(-5.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 reflect_f47fdb() {
+  vec3 res = vec3(-5.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 reflect_f47fdb() {
-  vec3 res = vec3(-5.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 reflect_f47fdb() {
+  vec3 res = vec3(-5.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.wgsl
index bc04d5d..63ba1f0 100644
--- a/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reflect/f47fdb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn reflect_f47fdb() -> vec3<f32> {
   var res : vec3<f32> = reflect(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_f47fdb();
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl
index 8dc667a..8c7bc2b 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn refract(vec<4, f16>, vec<4, f16>, f16) -> vec<4, f16>
 fn refract_0594ba() -> vec4<f16>{
   var res: vec4<f16> = refract(vec4<f16>(1.h), vec4<f16>(1.h), 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_0594ba();
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.dxc.hlsl
index ea8326d..c3ad362 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> refract_0594ba() {
   vector<float16_t, 4> res = (float16_t(-7.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
   return;
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.glsl
index 1a81f23..25c2890 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 refract_0594ba() {
   f16vec4 res = f16vec4(-7.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 refract_0594ba() {
   f16vec4 res = f16vec4(-7.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.wgsl
index e1f8a8d..82f2511 100644
--- a/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/refract/0594ba.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn refract_0594ba() -> vec4<f16> {
   var res : vec4<f16> = refract(vec4<f16>(1.0h), vec4<f16>(1.0h), 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_0594ba();
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl
index c904bb1..6589087 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn refract(vec<2, f16>, vec<2, f16>, f16) -> vec<2, f16>
 fn refract_570cb3() -> vec2<f16>{
   var res: vec2<f16> = refract(vec2<f16>(1.h), vec2<f16>(1.h), 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_570cb3();
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.dxc.hlsl
index a8efcee..39f58a9 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> refract_570cb3() {
   vector<float16_t, 2> res = (float16_t(-3.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
   return;
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.glsl
index b3006fd..3a4e51a 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 refract_570cb3() {
   f16vec2 res = f16vec2(-3.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 refract_570cb3() {
   f16vec2 res = f16vec2(-3.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.wgsl
index 9d0035c..c0b4fe1 100644
--- a/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/refract/570cb3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn refract_570cb3() -> vec2<f16> {
   var res : vec2<f16> = refract(vec2<f16>(1.0h), vec2<f16>(1.0h), 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_570cb3();
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl
index f4a3167..cce5b10 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn refract(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
 fn refract_7e02e6() -> vec4<f32>{
   var res: vec4<f32> = refract(vec4<f32>(1.f), vec4<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_7e02e6();
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.dxc.hlsl
index 8bc88fa..cdd799d 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 refract_7e02e6() {
   float4 res = (-7.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(refract_7e02e6()));
   return;
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.fxc.hlsl
index 8bc88fa..cdd799d 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 refract_7e02e6() {
   float4 res = (-7.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(refract_7e02e6()));
   return;
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.glsl
index a160006..1c48bb4 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 refract_7e02e6() {
   vec4 res = vec4(-7.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 refract_7e02e6() {
   vec4 res = vec4(-7.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.wgsl
index d508001..65d02e6 100644
--- a/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/refract/7e02e6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn refract_7e02e6() -> vec4<f32> {
   var res : vec4<f32> = refract(vec4<f32>(1.0f), vec4<f32>(1.0f), 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_7e02e6();
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl
index 08659f0..7222967 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn refract(vec<3, f16>, vec<3, f16>, f16) -> vec<3, f16>
 fn refract_8984af() -> vec3<f16>{
   var res: vec3<f16> = refract(vec3<f16>(1.h), vec3<f16>(1.h), 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_8984af();
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.dxc.hlsl
index f5c63e9..046587a 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> refract_8984af() {
   vector<float16_t, 3> res = (float16_t(-5.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
   return;
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.glsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.glsl
index f103d3e..9e5d055 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 refract_8984af() {
   f16vec3 res = f16vec3(-5.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 refract_8984af() {
   f16vec3 res = f16vec3(-5.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.wgsl
index e54bd15..9f5c2d3 100644
--- a/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/refract/8984af.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn refract_8984af() -> vec3<f16> {
   var res : vec3<f16> = refract(vec3<f16>(1.0h), vec3<f16>(1.0h), 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_8984af();
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl
index 8fc6540..31abc33 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn refract(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
 fn refract_cbc1d2() -> vec3<f32>{
   var res: vec3<f32> = refract(vec3<f32>(1.f), vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cbc1d2();
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.dxc.hlsl
index 1f193b8..36b490f 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 refract_cbc1d2() {
   float3 res = (-5.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
   return;
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.fxc.hlsl
index 1f193b8..36b490f 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 refract_cbc1d2() {
   float3 res = (-5.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
   return;
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.glsl
index 11156b1..e4a7af5 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 refract_cbc1d2() {
-  vec3 res = vec3(-5.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 refract_cbc1d2() {
+  vec3 res = vec3(-5.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 refract_cbc1d2() {
-  vec3 res = vec3(-5.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 refract_cbc1d2() {
+  vec3 res = vec3(-5.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.wgsl
index 68e57c9..267d388 100644
--- a/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/refract/cbc1d2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn refract_cbc1d2() -> vec3<f32> {
   var res : vec3<f32> = refract(vec3<f32>(1.0f), vec3<f32>(1.0f), 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cbc1d2();
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl
index cc756b9..8c8fa7b 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn refract(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
 fn refract_cd905f() -> vec2<f32>{
   var res: vec2<f32> = refract(vec2<f32>(1.f), vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cd905f();
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.dxc.hlsl
index b2981f6..8a30daa 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 refract_cd905f() {
   float2 res = (-3.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(refract_cd905f()));
   return;
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.fxc.hlsl
index b2981f6..8a30daa 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 refract_cd905f() {
   float2 res = (-3.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(refract_cd905f()));
   return;
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.glsl
index 11310f7..6754155 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 refract_cd905f() {
   vec2 res = vec2(-3.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 refract_cd905f() {
   vec2 res = vec2(-3.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.wgsl
index d11231a..fb9c458 100644
--- a/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/refract/cd905f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn refract_cd905f() -> vec2<f32> {
   var res : vec2<f32> = refract(vec2<f32>(1.0f), vec2<f32>(1.0f), 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cd905f();
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl
index 2aff81e..885e1b5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn reverseBits(vec<2, i32>) -> vec<2, i32>
 fn reverseBits_222177() -> vec2<i32>{
   var res: vec2<i32> = reverseBits(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_222177();
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.dxc.hlsl
index a1e9b84..de1aee5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 reverseBits_222177() {
   int2 res = (-2147483648).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_222177()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.fxc.hlsl
index a1e9b84..de1aee5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 reverseBits_222177() {
   int2 res = (-2147483648).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_222177()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.glsl
index 20318dc..5715bf1 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 reverseBits_222177() {
   ivec2 res = ivec2((-2147483647 - 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 reverseBits_222177() {
   ivec2 res = ivec2((-2147483647 - 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.wgsl
index acc379a..30b752b 100644
--- a/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/222177.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn reverseBits_222177() -> vec2<i32> {
   var res : vec2<i32> = reverseBits(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_222177();
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl
index 79bd632..7383f65 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn reverseBits(vec<4, u32>) -> vec<4, u32>
 fn reverseBits_35fea9() -> vec4<u32>{
   var res: vec4<u32> = reverseBits(vec4<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_35fea9();
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.dxc.hlsl
index 413e4b8..33777c1 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 reverseBits_35fea9() {
   uint4 res = (2147483648u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_35fea9()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.fxc.hlsl
index 413e4b8..33777c1 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 reverseBits_35fea9() {
   uint4 res = (2147483648u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_35fea9()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.glsl
index f82ba83..7fb2011 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 reverseBits_35fea9() {
   uvec4 res = uvec4(2147483648u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 reverseBits_35fea9() {
   uvec4 res = uvec4(2147483648u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.wgsl
index dadd169..7eef9ff 100644
--- a/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/35fea9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn reverseBits_35fea9() -> vec4<u32> {
   var res : vec4<u32> = reverseBits(vec4<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_35fea9();
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl
index 42ae048..1f401d7 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn reverseBits(vec<4, i32>) -> vec<4, i32>
 fn reverseBits_4dbd6f() -> vec4<i32>{
   var res: vec4<i32> = reverseBits(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_4dbd6f();
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl
index a40f6c4..f9094da 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 reverseBits_4dbd6f() {
   int4 res = (-2147483648).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl
index a40f6c4..f9094da 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 reverseBits_4dbd6f() {
   int4 res = (-2147483648).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.glsl
index e0ce097..1ee46bb 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 reverseBits_4dbd6f() {
   ivec4 res = ivec4((-2147483647 - 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 reverseBits_4dbd6f() {
   ivec4 res = ivec4((-2147483647 - 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.wgsl
index fc4bff3..7054a68 100644
--- a/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/4dbd6f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn reverseBits_4dbd6f() -> vec4<i32> {
   var res : vec4<i32> = reverseBits(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_4dbd6f();
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl
index e3c9089b..7e32f0c 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn reverseBits(i32) -> i32
 fn reverseBits_7c4269() -> i32{
   var res: i32 = reverseBits(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_7c4269();
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.dxc.hlsl
index a921628..abbf361 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int reverseBits_7c4269() {
   int res = -2147483648;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.fxc.hlsl
index a921628..abbf361 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int reverseBits_7c4269() {
   int res = -2147483648;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.glsl
index 1174bbf..b71be05 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int reverseBits_7c4269() {
   int res = (-2147483647 - 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int reverseBits_7c4269() {
   int res = (-2147483647 - 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.wgsl
index 317aa5d..175ef7a 100644
--- a/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/7c4269.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn reverseBits_7c4269() -> i32 {
   var res : i32 = reverseBits(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_7c4269();
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl
index 745a45b..940d716 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn reverseBits(vec<3, u32>) -> vec<3, u32>
 fn reverseBits_a6ccd4() -> vec3<u32>{
   var res: vec3<u32> = reverseBits(vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_a6ccd4();
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl
index 5695771..f45fac5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 reverseBits_a6ccd4() {
   uint3 res = (2147483648u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_a6ccd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl
index 5695771..f45fac5 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 reverseBits_a6ccd4() {
   uint3 res = (2147483648u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_a6ccd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.glsl
index 85aa4cc..21b6677 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 reverseBits_a6ccd4() {
-  uvec3 res = uvec3(2147483648u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 reverseBits_a6ccd4() {
+  uvec3 res = uvec3(2147483648u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 reverseBits_a6ccd4() {
-  uvec3 res = uvec3(2147483648u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 reverseBits_a6ccd4() {
+  uvec3 res = uvec3(2147483648u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.wgsl
index 9a9cc2d..33aad04 100644
--- a/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/a6ccd4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn reverseBits_a6ccd4() -> vec3<u32> {
   var res : vec3<u32> = reverseBits(vec3<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_a6ccd4();
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl
index 1cb33e5..614f41f 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn reverseBits(vec<3, i32>) -> vec<3, i32>
 fn reverseBits_c21bc1() -> vec3<i32>{
   var res: vec3<i32> = reverseBits(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_c21bc1();
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.dxc.hlsl
index d699d38..f8f67ec 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 reverseBits_c21bc1() {
   int3 res = (-2147483648).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.fxc.hlsl
index d699d38..f8f67ec 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 reverseBits_c21bc1() {
   int3 res = (-2147483648).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.glsl
index e923c87..80056f6 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 reverseBits_c21bc1() {
-  ivec3 res = ivec3((-2147483647 - 1));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 reverseBits_c21bc1() {
+  ivec3 res = ivec3((-2147483647 - 1));
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 reverseBits_c21bc1() {
-  ivec3 res = ivec3((-2147483647 - 1));
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 reverseBits_c21bc1() {
+  ivec3 res = ivec3((-2147483647 - 1));
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.wgsl
index 97307f6..6dd48a7 100644
--- a/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/c21bc1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn reverseBits_c21bc1() -> vec3<i32> {
   var res : vec3<i32> = reverseBits(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_c21bc1();
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl
index 67f6818..4bc306d 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn reverseBits(vec<2, u32>) -> vec<2, u32>
 fn reverseBits_e1f4c1() -> vec2<u32>{
   var res: vec2<u32> = reverseBits(vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e1f4c1();
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl
index 95e98fd..d7ca68b 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 reverseBits_e1f4c1() {
   uint2 res = (2147483648u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_e1f4c1()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl
index 95e98fd..d7ca68b 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 reverseBits_e1f4c1() {
   uint2 res = (2147483648u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_e1f4c1()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.glsl
index ec5fb33..5486285 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 reverseBits_e1f4c1() {
   uvec2 res = uvec2(2147483648u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 reverseBits_e1f4c1() {
   uvec2 res = uvec2(2147483648u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.wgsl
index 63008e0..214cd35 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e1f4c1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn reverseBits_e1f4c1() -> vec2<u32> {
   var res : vec2<u32> = reverseBits(vec2<u32>(1u));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e1f4c1();
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl
index 4fdd738..777a6ea 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn reverseBits(u32) -> u32
 fn reverseBits_e31adf() -> u32{
   var res: u32 = reverseBits(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e31adf();
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.dxc.hlsl
index 984f17b..3263e24 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint reverseBits_e31adf() {
   uint res = 2147483648u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_e31adf()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.fxc.hlsl
index 984f17b..3263e24 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint reverseBits_e31adf() {
   uint res = 2147483648u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_e31adf()));
   return;
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.glsl
index 0bef27e..ad73e96 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint reverseBits_e31adf() {
   uint res = 2147483648u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint reverseBits_e31adf() {
   uint res = 2147483648u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.wgsl
index a46f980..dd84537 100644
--- a/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/reverseBits/e31adf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn reverseBits_e31adf() -> u32 {
   var res : u32 = reverseBits(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e31adf();
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl
index fdb2f3b..f832290 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn round(vec<4, f32>) -> vec<4, f32>
 fn round_106c0b() -> vec4<f32>{
   var res: vec4<f32> = round(vec4<f32>(3.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_106c0b();
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl
index e94bef5..1f0ea69 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 round_106c0b() {
   float4 res = (4.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(round_106c0b()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl
index e94bef5..1f0ea69 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 round_106c0b() {
   float4 res = (4.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(round_106c0b()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl
index f6d7850..3e6a536 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 round_106c0b() {
   vec4 res = vec4(4.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 round_106c0b() {
   vec4 res = vec4(4.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl
index db6d185..0f10aad 100644
--- a/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/106c0b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn round_106c0b() -> vec4<f32> {
   var res : vec4<f32> = round(vec4<f32>(3.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_106c0b();
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl
index 9f4f144..9d7cf8f 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn round(vec<3, f32>) -> vec<3, f32>
 fn round_1c7897() -> vec3<f32>{
   var res: vec3<f32> = round(vec3<f32>(3.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_1c7897();
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl
index a9dfa1e..09ed9c0 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 round_1c7897() {
   float3 res = (4.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(round_1c7897()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl
index a9dfa1e..09ed9c0 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 round_1c7897() {
   float3 res = (4.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(round_1c7897()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl
index f863c85..b733f52 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 round_1c7897() {
-  vec3 res = vec3(4.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 round_1c7897() {
+  vec3 res = vec3(4.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 round_1c7897() {
-  vec3 res = vec3(4.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 round_1c7897() {
+  vec3 res = vec3(4.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl
index e400175..fdb15cc 100644
--- a/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/1c7897.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn round_1c7897() -> vec3<f32> {
   var res : vec3<f32> = round(vec3<f32>(3.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_1c7897();
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl
index 55c967f..a0392d9 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn round(vec<2, f32>) -> vec<2, f32>
 fn round_52c84d() -> vec2<f32>{
   var res: vec2<f32> = round(vec2<f32>(3.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_52c84d();
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl
index 6523dbe..b62dfd5 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 round_52c84d() {
   float2 res = (4.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(round_52c84d()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl
index 6523dbe..b62dfd5 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 round_52c84d() {
   float2 res = (4.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(round_52c84d()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl
index 578dc76..05ad494 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 round_52c84d() {
   vec2 res = vec2(4.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 round_52c84d() {
   vec2 res = vec2(4.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl
index 604ccc3..410f33d 100644
--- a/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/52c84d.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn round_52c84d() -> vec2<f32> {
   var res : vec2<f32> = round(vec2<f32>(3.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_52c84d();
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl
index d16cfab..21d3b96 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn round(f16) -> f16
 fn round_9078ef() -> f16{
   var res: f16 = round(3.5h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9078ef();
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl
index 462030e..2c3c866 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t round_9078ef() {
   float16_t res = float16_t(4.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, round_9078ef());
   return;
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl
index 71aba9b..6884ca3 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t round_9078ef() {
   float16_t res = 4.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t round_9078ef() {
   float16_t res = 4.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl
index 2a98f2d..519e296 100644
--- a/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/9078ef.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn round_9078ef() -> f16 {
   var res : f16 = round(3.5h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9078ef();
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl
index b857af9..9e84061 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn round(f32) -> f32
 fn round_9edc38() -> f32{
   var res: f32 = round(3.5f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9edc38();
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl
index a58c8f9..db78612 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float round_9edc38() {
   float res = 4.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(round_9edc38()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl
index a58c8f9..db78612 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float round_9edc38() {
   float res = 4.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(round_9edc38()));
   return;
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl
index b61d2b1..b77ac03 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float round_9edc38() {
   float res = 4.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float round_9edc38() {
   float res = 4.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl
index e72d673..4061bc6 100644
--- a/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/9edc38.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn round_9edc38() -> f32 {
   var res : f32 = round(3.5f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9edc38();
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl
index adfb1f8..a9b5040 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn round(vec<2, f16>) -> vec<2, f16>
 fn round_d87e84() -> vec2<f16>{
   var res: vec2<f16> = round(vec2<f16>(3.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_d87e84();
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl
index e181790..dc0bb9d 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> round_d87e84() {
   vector<float16_t, 2> res = (float16_t(4.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
   return;
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl
index 78697b9..71d5c7f 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 round_d87e84() {
   f16vec2 res = f16vec2(4.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 round_d87e84() {
   f16vec2 res = f16vec2(4.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl
index 134fe38..2737e64 100644
--- a/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/d87e84.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn round_d87e84() -> vec2<f16> {
   var res : vec2<f16> = round(vec2<f16>(3.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_d87e84();
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl
index 1277afd..d3dce51 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn round(vec<3, f16>) -> vec<3, f16>
 fn round_e1bba2() -> vec3<f16>{
   var res: vec3<f16> = round(vec3<f16>(3.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_e1bba2();
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl
index 05075a1..597eb45 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> round_e1bba2() {
   vector<float16_t, 3> res = (float16_t(4.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
   return;
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl
index 4cc14b3..7e79420 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 round_e1bba2() {
   f16vec3 res = f16vec3(4.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 round_e1bba2() {
   f16vec3 res = f16vec3(4.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl
index 86bc5a0..220d2ab 100644
--- a/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/e1bba2.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn round_e1bba2() -> vec3<f16> {
   var res : vec3<f16> = round(vec3<f16>(3.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_e1bba2();
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl
index 38a6a57..cafabc7 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn round(vec<4, f16>) -> vec<4, f16>
 fn round_f665b5() -> vec4<f16>{
   var res: vec4<f16> = round(vec4<f16>(3.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_f665b5();
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl
index a830378..6841ac2 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> round_f665b5() {
   vector<float16_t, 4> res = (float16_t(4.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
   return;
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl
index 64b49d3..5262ea4 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 round_f665b5() {
   f16vec4 res = f16vec4(4.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 round_f665b5() {
   f16vec4 res = f16vec4(4.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl
index 4e3909b..f69617f 100644
--- a/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/round/f665b5.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn round_f665b5() -> vec4<f16> {
   var res : vec4<f16> = round(vec4<f16>(3.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_f665b5();
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl
index 8b51c06..2830bc7 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn saturate(f32) -> f32
 fn saturate_270da5() -> f32{
   var res: f32 = saturate(2.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_270da5();
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.dxc.hlsl
index 628f779..fb019e9 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float saturate_270da5() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(saturate_270da5()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.fxc.hlsl
index 628f779..fb019e9 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float saturate_270da5() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(saturate_270da5()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.glsl
index 097deb0..6ef171f 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float saturate_270da5() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float saturate_270da5() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.wgsl
index 7c803de..422663c 100644
--- a/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/270da5.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn saturate_270da5() -> f32 {
   var res : f32 = saturate(2.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_270da5();
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl
index 3dcb0f3..606ea0a 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn saturate(vec<3, f16>) -> vec<3, f16>
 fn saturate_462535() -> vec3<f16>{
   var res: vec3<f16> = saturate(vec3<f16>(2.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_462535();
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.dxc.hlsl
index d3e6056..63db0c6 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> saturate_462535() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.glsl
index cdb1e0c..7f23511 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 saturate_462535() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 saturate_462535() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.wgsl
index 381c2ed..7de4c1d 100644
--- a/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/462535.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn saturate_462535() -> vec3<f16> {
   var res : vec3<f16> = saturate(vec3<f16>(2.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_462535();
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl
index f9ee9c1..8120bc3 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn saturate(vec<2, f32>) -> vec<2, f32>
 fn saturate_51567f() -> vec2<f32>{
   var res: vec2<f32> = saturate(vec2<f32>(2.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_51567f();
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.dxc.hlsl
index f8f00f0..02a31fa 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 saturate_51567f() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(saturate_51567f()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.fxc.hlsl
index f8f00f0..02a31fa 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 saturate_51567f() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(saturate_51567f()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.glsl
index 9d993c5..f312093 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 saturate_51567f() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 saturate_51567f() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.wgsl
index 85c126c..4cffd04 100644
--- a/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/51567f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn saturate_51567f() -> vec2<f32> {
   var res : vec2<f32> = saturate(vec2<f32>(2.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_51567f();
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl
index e553d39..995b092 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn saturate(vec<3, f32>) -> vec<3, f32>
 fn saturate_6bcddf() -> vec3<f32>{
   var res: vec3<f32> = saturate(vec3<f32>(2.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_6bcddf();
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.dxc.hlsl
index e73f4a3..07f09f3 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 saturate_6bcddf() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.fxc.hlsl
index e73f4a3..07f09f3 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 saturate_6bcddf() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.glsl
index e229c00..d179975 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 saturate_6bcddf() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 saturate_6bcddf() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 saturate_6bcddf() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 saturate_6bcddf() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.wgsl
index 8e9c427..9fa5912 100644
--- a/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/6bcddf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn saturate_6bcddf() -> vec3<f32> {
   var res : vec3<f32> = saturate(vec3<f32>(2.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_6bcddf();
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl
index ae69ca5..56ec9e7 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn saturate(vec<4, f32>) -> vec<4, f32>
 fn saturate_a5b571() -> vec4<f32>{
   var res: vec4<f32> = saturate(vec4<f32>(2.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_a5b571();
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.dxc.hlsl
index 03e9659..9213745 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 saturate_a5b571() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(saturate_a5b571()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.fxc.hlsl
index 03e9659..9213745 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 saturate_a5b571() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(saturate_a5b571()));
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.glsl
index 3c316d0..344133b 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 saturate_a5b571() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 saturate_a5b571() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.wgsl
index 51a426c..abc5cc7 100644
--- a/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/a5b571.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn saturate_a5b571() -> vec4<f32> {
   var res : vec4<f32> = saturate(vec4<f32>(2.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_a5b571();
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl
index e511ca9..6089801 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn saturate(vec<2, f16>) -> vec<2, f16>
 fn saturate_cd2028() -> vec2<f16>{
   var res: vec2<f16> = saturate(vec2<f16>(2.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_cd2028();
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.dxc.hlsl
index d59d7b6..e662156 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> saturate_cd2028() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.glsl
index 4ec14d8..d02a344 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 saturate_cd2028() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 saturate_cd2028() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.wgsl
index 894fbde..5700d67 100644
--- a/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/cd2028.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn saturate_cd2028() -> vec2<f16> {
   var res : vec2<f16> = saturate(vec2<f16>(2.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_cd2028();
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl
index c60914a..462514e 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn saturate(vec<4, f16>) -> vec<4, f16>
 fn saturate_dcde71() -> vec4<f16>{
   var res: vec4<f16> = saturate(vec4<f16>(2.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_dcde71();
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.dxc.hlsl
index df4ead0..2424920 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> saturate_dcde71() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.glsl
index 87730a3..30ea4b1 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 saturate_dcde71() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 saturate_dcde71() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.wgsl
index cbc7302..5bcf5b2 100644
--- a/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/dcde71.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn saturate_dcde71() -> vec4<f16> {
   var res : vec4<f16> = saturate(vec4<f16>(2.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_dcde71();
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl
index 12c1797..f921ab9 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn saturate(f16) -> f16
 fn saturate_e8df56() -> f16{
   var res: f16 = saturate(2.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_e8df56();
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.dxc.hlsl
index 3318084..79a7590 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t saturate_e8df56() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, saturate_e8df56());
   return;
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.glsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.glsl
index 155e3f0..16c527b 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t saturate_e8df56() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t saturate_e8df56() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.wgsl
index 06d08f8..1006359 100644
--- a/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/saturate/e8df56.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn saturate_e8df56() -> f16 {
   var res : f16 = saturate(2.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_e8df56();
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl b/test/tint/builtins/gen/literal/select/00b848.wgsl
index 2fbcdf1..cbba9ac 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn select(vec<2, i32>, vec<2, i32>, vec<2, bool>) -> vec<2, i32>
 fn select_00b848() -> vec2<i32>{
   var res: vec2<i32> = select(vec2<i32>(1i), vec2<i32>(1i), vec2<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_00b848();
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl
index d215bed..08cb812 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_00b848() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_00b848()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl
index d215bed..08cb812 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_00b848() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_00b848()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl
index f5daa16..58e5fe2 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_00b848() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_00b848() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.wgsl
index 37360f5..f6c29c5 100644
--- a/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/00b848.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn select_00b848() -> vec2<i32> {
   var res : vec2<i32> = select(vec2<i32>(1i), vec2<i32>(1i), vec2<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_00b848();
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl
index ef7b875..23ba8fd 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn select(vec<3, i32>, vec<3, i32>, vec<3, bool>) -> vec<3, i32>
 fn select_01e2cd() -> vec3<i32>{
   var res: vec3<i32> = select(vec3<i32>(1i), vec3<i32>(1i), vec3<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_01e2cd();
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl
index ff260ac..1a2f708 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_01e2cd() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_01e2cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl
index ff260ac..1a2f708 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_01e2cd() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_01e2cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl
index dcde12d..cc580d9 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 select_01e2cd() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 select_01e2cd() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 select_01e2cd() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 select_01e2cd() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.wgsl
index 58fa370..5aad0f9 100644
--- a/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/01e2cd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn select_01e2cd() -> vec3<i32> {
   var res : vec3<i32> = select(vec3<i32>(1i), vec3<i32>(1i), vec3<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_01e2cd();
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl
index 8c3712e..42a83e2 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn select(vec<4, u32>, vec<4, u32>, bool) -> vec<4, u32>
 fn select_087ea4() -> vec4<u32>{
   var res: vec4<u32> = select(vec4<u32>(1u), vec4<u32>(1u), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_087ea4();
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl
index 757e2aa..5732ea3 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_087ea4() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_087ea4()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl
index 757e2aa..5732ea3 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_087ea4() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_087ea4()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl
index 093f455..213ef70 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_087ea4() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_087ea4() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.wgsl
index 1fdf308..5a6c386 100644
--- a/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/087ea4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn select_087ea4() -> vec4<u32> {
   var res : vec4<u32> = select(vec4<u32>(1u), vec4<u32>(1u), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_087ea4();
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl
index 369a0f4..e95b328 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn select(f16, f16, bool) -> f16
 fn select_10e73b() -> f16{
   var res: f16 = select(1.h, 1.h, true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_10e73b();
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl
index 72481da..a27246f 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t select_10e73b() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, select_10e73b());
   return;
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl
index 28fe11a..7d51bde 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t select_10e73b() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t select_10e73b() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.wgsl
index 7ceaf71..ac8c98b 100644
--- a/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/10e73b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn select_10e73b() -> f16 {
   var res : f16 = select(1.0h, 1.0h, true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_10e73b();
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl
index a474d60..1d69d3a 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn select(vec<3, f16>, vec<3, f16>, bool) -> vec<3, f16>
 fn select_1ada2a() -> vec3<f16>{
   var res: vec3<f16> = select(vec3<f16>(1.h), vec3<f16>(1.h), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1ada2a();
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl
index 2838218..503f4dd 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> select_1ada2a() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
   return;
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl
index fca76dd..bed7728 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_1ada2a() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_1ada2a() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.wgsl
index e73a3bf..23ce94c 100644
--- a/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/1ada2a.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn select_1ada2a() -> vec3<f16> {
   var res : vec3<f16> = select(vec3<f16>(1.0h), vec3<f16>(1.0h), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1ada2a();
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl
index c6509c8..277387c 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn select(vec<2, u32>, vec<2, u32>, vec<2, bool>) -> vec<2, u32>
 fn select_1e960b() -> vec2<u32>{
   var res: vec2<u32> = select(vec2<u32>(1u), vec2<u32>(1u), vec2<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1e960b();
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl
index 2856984..2a03e30 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_1e960b() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_1e960b()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl
index 2856984..2a03e30 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_1e960b() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_1e960b()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl
index e551056..486d6ca 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_1e960b() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_1e960b() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.wgsl
index e802097..a40bdd1 100644
--- a/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/1e960b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn select_1e960b() -> vec2<u32> {
   var res : vec2<u32> = select(vec2<u32>(1u), vec2<u32>(1u), vec2<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1e960b();
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl b/test/tint/builtins/gen/literal/select/266aff.wgsl
index f0ddde5..76879aa 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn select(vec<2, f32>, vec<2, f32>, vec<2, bool>) -> vec<2, f32>
 fn select_266aff() -> vec2<f32>{
   var res: vec2<f32> = select(vec2<f32>(1.f), vec2<f32>(1.f), vec2<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_266aff();
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl
index f450747..b7f885b 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_266aff() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_266aff()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl
index f450747..b7f885b 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_266aff() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_266aff()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl
index b0506f1..d97cd7e 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_266aff() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_266aff() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.wgsl
index eb351bf..1bbc8de 100644
--- a/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/266aff.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn select_266aff() -> vec2<f32> {
   var res : vec2<f32> = select(vec2<f32>(1.0f), vec2<f32>(1.0f), vec2<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_266aff();
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl
index 6e3168d..7575ebe 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn select(vec<3, u32>, vec<3, u32>, vec<3, bool>) -> vec<3, u32>
 fn select_28a27e() -> vec3<u32>{
   var res: vec3<u32> = select(vec3<u32>(1u), vec3<u32>(1u), vec3<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_28a27e();
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl
index ec6ccce..236bfc7 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_28a27e() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_28a27e()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl
index ec6ccce..236bfc7 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_28a27e() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_28a27e()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl
index 01aebdf..160e3f7 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 select_28a27e() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 select_28a27e() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 select_28a27e() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 select_28a27e() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.wgsl
index 2254ab2..85954fe 100644
--- a/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/28a27e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn select_28a27e() -> vec3<u32> {
   var res : vec3<u32> = select(vec3<u32>(1u), vec3<u32>(1u), vec3<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_28a27e();
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl
index 5a76f59..f2621a8 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<3, bool>, vec<3, bool>, bool) -> vec<3, bool>
 fn select_3c25ce() -> i32{
   var res: vec3<bool> = select(vec3<bool>(true), vec3<bool>(true), true);
   return select(0, 1, all(res == vec3<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_3c25ce();
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl
index d4a39ae..6e2b335 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_3c25ce() {
   bool3 res = (true).xxx;
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_3c25ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl
index d4a39ae..6e2b335 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_3c25ce() {
   bool3 res = (true).xxx;
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_3c25ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl
index 3145cd9..99024a5 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_3c25ce() {
   bvec3 res = bvec3(true);
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_3c25ce() {
   bvec3 res = bvec3(true);
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.wgsl
index 352a1a3..688033d 100644
--- a/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/3c25ce.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_3c25ce() -> i32 {
   var res : vec3<bool> = select(vec3<bool>(true), vec3<bool>(true), true);
   return select(0, 1, all((res == vec3<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_3c25ce();
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl b/test/tint/builtins/gen/literal/select/416e14.wgsl
index be98afc..067b83f 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn select(f32, f32, bool) -> f32
 fn select_416e14() -> f32{
   var res: f32 = select(1.f, 1.f, true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_416e14();
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl
index d76505b..a3af036 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float select_416e14() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_416e14()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl
index d76505b..a3af036 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float select_416e14() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_416e14()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl
index 5f441b4..51d4c57 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float select_416e14() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float select_416e14() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.wgsl
index 3ae2175..d643a62 100644
--- a/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/416e14.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn select_416e14() -> f32 {
   var res : f32 = select(1.0f, 1.0f, true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_416e14();
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl b/test/tint/builtins/gen/literal/select/51b047.wgsl
index 016ca1a..bdafb18 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn select(vec<2, u32>, vec<2, u32>, bool) -> vec<2, u32>
 fn select_51b047() -> vec2<u32>{
   var res: vec2<u32> = select(vec2<u32>(1u), vec2<u32>(1u), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_51b047();
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl
index 7af8a97..5dabe92 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_51b047() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_51b047()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl
index 7af8a97..5dabe92 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_51b047() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_51b047()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl
index c886cac..b67734a 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_51b047() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_51b047() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.wgsl
index f84ba7d..d336800 100644
--- a/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/51b047.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn select_51b047() -> vec2<u32> {
   var res : vec2<u32> = select(vec2<u32>(1u), vec2<u32>(1u), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_51b047();
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl b/test/tint/builtins/gen/literal/select/53d518.wgsl
index a13b8ee..e5717e1 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn select(vec<3, f16>, vec<3, f16>, vec<3, bool>) -> vec<3, f16>
 fn select_53d518() -> vec3<f16>{
   var res: vec3<f16> = select(vec3<f16>(1.h), vec3<f16>(1.h), vec3<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_53d518();
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl
index fdbebd3..538127c 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> select_53d518() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
   return;
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl
index 6cd3442..8b86f20 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_53d518() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_53d518() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.wgsl
index 5304811..54e80f4 100644
--- a/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/53d518.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn select_53d518() -> vec3<f16> {
   var res : vec3<f16> = select(vec3<f16>(1.0h), vec3<f16>(1.0h), vec3<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_53d518();
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl b/test/tint/builtins/gen/literal/select/713567.wgsl
index 60fc668..092d911 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn select(vec<4, f32>, vec<4, f32>, bool) -> vec<4, f32>
 fn select_713567() -> vec4<f32>{
   var res: vec4<f32> = select(vec4<f32>(1.f), vec4<f32>(1.f), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_713567();
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl
index d4aad87..29f1744 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_713567() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_713567()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl
index d4aad87..29f1744 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_713567() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_713567()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl
index dc9a04c..452397b 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_713567() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_713567() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.wgsl
index 8794339..e3718cd 100644
--- a/test/tint/builtins/gen/literal/select/713567.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/713567.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn select_713567() -> vec4<f32> {
   var res : vec4<f32> = select(vec4<f32>(1.0f), vec4<f32>(1.0f), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_713567();
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl
index e7dc722..a6bb370 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn select(vec<3, f32>, vec<3, f32>, bool) -> vec<3, f32>
 fn select_78be5f() -> vec3<f32>{
   var res: vec3<f32> = select(vec3<f32>(1.f), vec3<f32>(1.f), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_78be5f();
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl
index 079bf72..fcf6bea 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_78be5f() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_78be5f()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl
index 079bf72..fcf6bea 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_78be5f() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_78be5f()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl
index 5bc52cd..06bf0ff 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 select_78be5f() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 select_78be5f() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 select_78be5f() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 select_78be5f() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.wgsl
index 2e30501..fd2ae25 100644
--- a/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/78be5f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn select_78be5f() -> vec3<f32> {
   var res : vec3<f32> = select(vec3<f32>(1.0f), vec3<f32>(1.0f), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_78be5f();
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl
index 1c2986e..f8761d8 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<3, bool>, vec<3, bool>, vec<3, bool>) -> vec<3, bool>
 fn select_80a9a9() -> i32{
   var res: vec3<bool> = select(vec3<bool>(true), vec3<bool>(true), vec3<bool>(true));
   return select(0, 1, all(res == vec3<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_80a9a9();
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl
index 3030d4f..6b3720d 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_80a9a9() {
   bool3 res = (true).xxx;
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_80a9a9()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl
index 3030d4f..6b3720d 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_80a9a9() {
   bool3 res = (true).xxx;
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_80a9a9()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl
index bd79ab7..06fe469 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_80a9a9() {
   bvec3 res = bvec3(true);
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_80a9a9() {
   bvec3 res = bvec3(true);
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.wgsl
index 7812b8a..6ec4bf3 100644
--- a/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/80a9a9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_80a9a9() -> i32 {
   var res : vec3<bool> = select(vec3<bool>(true), vec3<bool>(true), vec3<bool>(true));
   return select(0, 1, all((res == vec3<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_80a9a9();
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl
index 7c7204b..8fc9c07 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn select(vec<4, f16>, vec<4, f16>, bool) -> vec<4, f16>
 fn select_830dd9() -> vec4<f16>{
   var res: vec4<f16> = select(vec4<f16>(1.h), vec4<f16>(1.h), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_830dd9();
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl
index f95f220..b1b7eab 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> select_830dd9() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
   return;
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl
index 6837a44..9b5cac7 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_830dd9() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_830dd9() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.wgsl
index 8c18255..d9ceb08 100644
--- a/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/830dd9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn select_830dd9() -> vec4<f16> {
   var res : vec4<f16> = select(vec4<f16>(1.0h), vec4<f16>(1.0h), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_830dd9();
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl
index 9cd86ca..85390f9 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn select(vec<2, f16>, vec<2, f16>, bool) -> vec<2, f16>
 fn select_86f9bd() -> vec2<f16>{
   var res: vec2<f16> = select(vec2<f16>(1.h), vec2<f16>(1.h), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_86f9bd();
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl
index 87461cf..f352ecc 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> select_86f9bd() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
   return;
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl
index 243c3da..e8f1988 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_86f9bd() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_86f9bd() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.wgsl
index 53cb717..6d7f33a 100644
--- a/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/86f9bd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn select_86f9bd() -> vec2<f16> {
   var res : vec2<f16> = select(vec2<f16>(1.0h), vec2<f16>(1.0h), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_86f9bd();
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl
index f3d9cd9..3eaecd1 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn select(vec<3, i32>, vec<3, i32>, bool) -> vec<3, i32>
 fn select_8fa62c() -> vec3<i32>{
   var res: vec3<i32> = select(vec3<i32>(1i), vec3<i32>(1i), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_8fa62c();
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl
index c669a9d..520f08b 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_8fa62c() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_8fa62c()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl
index c669a9d..520f08b 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_8fa62c() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_8fa62c()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl
index 3c4bd41..9b2dbdc 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 select_8fa62c() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 select_8fa62c() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 select_8fa62c() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 select_8fa62c() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.wgsl
index d1d6984..4d0d699 100644
--- a/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/8fa62c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn select_8fa62c() -> vec3<i32> {
   var res : vec3<i32> = select(vec3<i32>(1i), vec3<i32>(1i), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_8fa62c();
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl b/test/tint/builtins/gen/literal/select/99f883.wgsl
index e201cf5..4d02197 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn select(u32, u32, bool) -> u32
 fn select_99f883() -> u32{
   var res: u32 = select(1u, 1u, true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_99f883();
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl
index 8b2931d..66c6a13 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint select_99f883() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_99f883()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl
index 8b2931d..66c6a13 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint select_99f883() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_99f883()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl
index 9e7653c..d6c0f45 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint select_99f883() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint select_99f883() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.wgsl
index 822d810..4be9bd8 100644
--- a/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/99f883.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn select_99f883() -> u32 {
   var res : u32 = select(1u, 1u, true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_99f883();
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl
index f96c3cd..f999381 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn select(vec<4, f16>, vec<4, f16>, vec<4, bool>) -> vec<4, f16>
 fn select_a081f1() -> vec4<f16>{
   var res: vec4<f16> = select(vec4<f16>(1.h), vec4<f16>(1.h), vec4<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a081f1();
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl
index 40181f3..6710c76 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> select_a081f1() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
   return;
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl
index 27e2905f..2b545cf 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_a081f1() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_a081f1() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.wgsl
index 4e3c83e..d43dadf 100644
--- a/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/a081f1.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn select_a081f1() -> vec4<f16> {
   var res : vec4<f16> = select(vec4<f16>(1.0h), vec4<f16>(1.0h), vec4<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a081f1();
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl
index ff185b7..dd51eb6 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn select(vec<4, i32>, vec<4, i32>, vec<4, bool>) -> vec<4, i32>
 fn select_a2860e() -> vec4<i32>{
   var res: vec4<i32> = select(vec4<i32>(1i), vec4<i32>(1i), vec4<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a2860e();
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl
index b248cc2..51b1f09 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_a2860e() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_a2860e()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl
index b248cc2..51b1f09 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_a2860e() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_a2860e()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl
index 22c1cf1..2adac2b 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_a2860e() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_a2860e() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.wgsl
index f62b8c6..7ad2d24 100644
--- a/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/a2860e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn select_a2860e() -> vec4<i32> {
   var res : vec4<i32> = select(vec4<i32>(1i), vec4<i32>(1i), vec4<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a2860e();
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl
index 2480d22..4daf772 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn select(vec<4, i32>, vec<4, i32>, bool) -> vec<4, i32>
 fn select_ab069f() -> vec4<i32>{
   var res: vec4<i32> = select(vec4<i32>(1i), vec4<i32>(1i), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ab069f();
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl
index 6e19066..20cc2232 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_ab069f() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_ab069f()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl
index 6e19066..20cc2232 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_ab069f() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_ab069f()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl
index a615616..349c67f 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_ab069f() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_ab069f() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.wgsl
index 503135f..68ee06f 100644
--- a/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/ab069f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn select_ab069f() -> vec4<i32> {
   var res : vec4<i32> = select(vec4<i32>(1i), vec4<i32>(1i), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ab069f();
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl b/test/tint/builtins/gen/literal/select/b04721.wgsl
index 5e73835..50369ba 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn select(vec<3, u32>, vec<3, u32>, bool) -> vec<3, u32>
 fn select_b04721() -> vec3<u32>{
   var res: vec3<u32> = select(vec3<u32>(1u), vec3<u32>(1u), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_b04721();
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl
index 937043c..b39950c 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_b04721() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_b04721()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl
index 937043c..b39950c 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_b04721() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_b04721()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl
index 7e6303b..7eacc16 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 select_b04721() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 select_b04721() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 select_b04721() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 select_b04721() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.wgsl
index ce42bdd..60609df 100644
--- a/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/b04721.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn select_b04721() -> vec3<u32> {
   var res : vec3<u32> = select(vec3<u32>(1u), vec3<u32>(1u), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_b04721();
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl
index e81d68e..b13d32a 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn select(vec<2, i32>, vec<2, i32>, bool) -> vec<2, i32>
 fn select_bb447f() -> vec2<i32>{
   var res: vec2<i32> = select(vec2<i32>(1i), vec2<i32>(1i), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb447f();
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl
index e6470fe..4867a97 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_bb447f() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bb447f()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl
index e6470fe..4867a97 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_bb447f() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bb447f()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl
index c18f675..e104e91 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_bb447f() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_bb447f() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.wgsl
index bd774e0..d0cd9ec 100644
--- a/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/bb447f.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn select_bb447f() -> vec2<i32> {
   var res : vec2<i32> = select(vec2<i32>(1i), vec2<i32>(1i), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb447f();
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl
index 1950788..67b7faf 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn select(vec<4, f32>, vec<4, f32>, vec<4, bool>) -> vec<4, f32>
 fn select_bb8aae() -> vec4<f32>{
   var res: vec4<f32> = select(vec4<f32>(1.f), vec4<f32>(1.f), vec4<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb8aae();
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl
index 832bed3..2b455e7 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_bb8aae() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_bb8aae()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl
index 832bed3..2b455e7 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_bb8aae() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_bb8aae()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl
index 463edb6..b6a85ce 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_bb8aae() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_bb8aae() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.wgsl
index 11c4673..300c32a 100644
--- a/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/bb8aae.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn select_bb8aae() -> vec4<f32> {
   var res : vec4<f32> = select(vec4<f32>(1.0f), vec4<f32>(1.0f), vec4<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb8aae();
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl
index 5a098f1..6cbc2f0 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn select(vec<2, f32>, vec<2, f32>, bool) -> vec<2, f32>
 fn select_bf3d29() -> vec2<f32>{
   var res: vec2<f32> = select(vec2<f32>(1.f), vec2<f32>(1.f), true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bf3d29();
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl
index 7381a36..12bc80f 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_bf3d29() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bf3d29()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl
index 7381a36..12bc80f 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_bf3d29() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bf3d29()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl
index 01a7830..563a0cd 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_bf3d29() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_bf3d29() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.wgsl
index 518ff40..0517f68 100644
--- a/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/bf3d29.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn select_bf3d29() -> vec2<f32> {
   var res : vec2<f32> = select(vec2<f32>(1.0f), vec2<f32>(1.0f), true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bf3d29();
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl
index 049314a..2cdca78 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(bool, bool, bool) -> bool
 fn select_c31f9e() -> i32{
   var res: bool = select(true, true, true);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c31f9e();
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl
index f279ced..1f35754 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c31f9e() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c31f9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl
index f279ced..1f35754 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c31f9e() {
   bool res = true;
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c31f9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl
index 6a1f5f9..186e8a2 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c31f9e() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c31f9e() {
   bool res = true;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.wgsl
index f11f3ec..cda76ae 100644
--- a/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/c31f9e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_c31f9e() -> i32 {
   var res : bool = select(true, true, true);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c31f9e();
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl
index 12ad37a..5ec1c0d 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<4, bool>, vec<4, bool>, bool) -> vec<4, bool>
 fn select_c41bd1() -> i32{
   var res: vec4<bool> = select(vec4<bool>(true), vec4<bool>(true), true);
   return select(0, 1, all(res == vec4<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c41bd1();
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl
index b5762f2..3dd0126 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c41bd1() {
   bool4 res = (true).xxxx;
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c41bd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl
index b5762f2..3dd0126 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c41bd1() {
   bool4 res = (true).xxxx;
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c41bd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl
index c2c43b9..a15b745 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c41bd1() {
   bvec4 res = bvec4(true);
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c41bd1() {
   bvec4 res = bvec4(true);
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.wgsl
index 9c2f669..5a0bb9b 100644
--- a/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/c41bd1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_c41bd1() -> i32 {
   var res : vec4<bool> = select(vec4<bool>(true), vec4<bool>(true), true);
   return select(0, 1, all((res == vec4<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c41bd1();
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl
index 5a940b2..11b8af8 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn select(vec<4, u32>, vec<4, u32>, vec<4, bool>) -> vec<4, u32>
 fn select_c4a4ef() -> vec4<u32>{
   var res: vec4<u32> = select(vec4<u32>(1u), vec4<u32>(1u), vec4<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c4a4ef();
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl
index 6fefcd4..c06acda 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_c4a4ef() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_c4a4ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl
index 6fefcd4..c06acda 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_c4a4ef() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_c4a4ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl
index ed0ab68..3458b40 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_c4a4ef() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_c4a4ef() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.wgsl
index 5447b73..692044f 100644
--- a/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/c4a4ef.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn select_c4a4ef() -> vec4<u32> {
   var res : vec4<u32> = select(vec4<u32>(1u), vec4<u32>(1u), vec4<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c4a4ef();
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl
index c36e803..4c465ed 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<2, bool>, vec<2, bool>, vec<2, bool>) -> vec<2, bool>
 fn select_cb9301() -> i32{
   var res: vec2<bool> = select(vec2<bool>(true), vec2<bool>(true), vec2<bool>(true));
   return select(0, 1, all(res == vec2<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_cb9301();
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl
index b76e331..d4ae658 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_cb9301() {
   bool2 res = (true).xx;
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_cb9301()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl
index b76e331..d4ae658 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_cb9301() {
   bool2 res = (true).xx;
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_cb9301()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl
index 3e37091..a01cc04 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_cb9301() {
   bvec2 res = bvec2(true);
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_cb9301() {
   bvec2 res = bvec2(true);
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.wgsl
index 1db2319..8233549 100644
--- a/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/cb9301.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_cb9301() -> i32 {
   var res : vec2<bool> = select(vec2<bool>(true), vec2<bool>(true), vec2<bool>(true));
   return select(0, 1, all((res == vec2<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_cb9301();
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl
index 54d452b..3ecea11 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<4, bool>, vec<4, bool>, vec<4, bool>) -> vec<4, bool>
 fn select_e3e028() -> i32{
   var res: vec4<bool> = select(vec4<bool>(true), vec4<bool>(true), vec4<bool>(true));
   return select(0, 1, all(res == vec4<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_e3e028();
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl
index 855fbc9..f5e775f 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_e3e028() {
   bool4 res = (true).xxxx;
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_e3e028()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl
index 855fbc9..f5e775f 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_e3e028() {
   bool4 res = (true).xxxx;
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_e3e028()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl
index 174a52e..31d0539 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_e3e028() {
   bvec4 res = bvec4(true);
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_e3e028() {
   bvec4 res = bvec4(true);
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.wgsl
index e8d0bcc..9d3655a 100644
--- a/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/e3e028.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_e3e028() -> i32 {
   var res : vec4<bool> = select(vec4<bool>(true), vec4<bool>(true), vec4<bool>(true));
   return select(0, 1, all((res == vec4<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_e3e028();
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl
index 6d0be89..b7ee06b 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn select(vec<3, f32>, vec<3, f32>, vec<3, bool>) -> vec<3, f32>
 fn select_ebfea2() -> vec3<f32>{
   var res: vec3<f32> = select(vec3<f32>(1.f), vec3<f32>(1.f), vec3<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ebfea2();
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl
index 3198c84..713f5c6 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_ebfea2() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_ebfea2()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl
index 3198c84..713f5c6 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_ebfea2() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_ebfea2()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl
index 9190ce8..a5fb42c 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 select_ebfea2() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 select_ebfea2() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 select_ebfea2() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 select_ebfea2() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.wgsl
index 4951c96..7e3cd9e 100644
--- a/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/ebfea2.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn select_ebfea2() -> vec3<f32> {
   var res : vec3<f32> = select(vec3<f32>(1.0f), vec3<f32>(1.0f), vec3<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ebfea2();
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl
index 3672513..78dfc88 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn select(vec<2, f16>, vec<2, f16>, vec<2, bool>) -> vec<2, f16>
 fn select_ed7c13() -> vec2<f16>{
   var res: vec2<f16> = select(vec2<f16>(1.h), vec2<f16>(1.h), vec2<bool>(true));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed7c13();
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl
index 73988b1..f311bc2 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> select_ed7c13() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
   return;
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl
index 6b4979b..2e836f5 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_ed7c13() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_ed7c13() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.wgsl
index d1c09a7..b4c0eee 100644
--- a/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/ed7c13.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn select_ed7c13() -> vec2<f16> {
   var res : vec2<f16> = select(vec2<f16>(1.0h), vec2<f16>(1.0h), vec2<bool>(true));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed7c13();
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl
index abddb0a..979139a 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn select(i32, i32, bool) -> i32
 fn select_ed8a15() -> i32{
   var res: i32 = select(1i, 1i, true);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed8a15();
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl
index 81d4304..c2ee61b 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_ed8a15() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_ed8a15()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl
index 81d4304..c2ee61b 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_ed8a15() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_ed8a15()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl
index 20ac710..5135eac 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_ed8a15() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_ed8a15() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.wgsl
index 4bbbdf1..7b30b55 100644
--- a/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/ed8a15.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_ed8a15() -> i32 {
   var res : i32 = select(1i, 1i, true);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed8a15();
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl
index 325f36a..60d5c18 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<2, bool>, vec<2, bool>, bool) -> vec<2, bool>
 fn select_fb7e53() -> i32{
   var res: vec2<bool> = select(vec2<bool>(true), vec2<bool>(true), true);
   return select(0, 1, all(res == vec2<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_fb7e53();
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl
index f604925..6e0ce84 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_fb7e53() {
   bool2 res = (true).xx;
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_fb7e53()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl
index f604925..6e0ce84 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_fb7e53() {
   bool2 res = (true).xx;
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_fb7e53()));
   return;
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl
index 713dc1c..d780c8f 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_fb7e53() {
   bvec2 res = bvec2(true);
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_fb7e53() {
   bvec2 res = bvec2(true);
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.wgsl
index b94b98d..234108f 100644
--- a/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/select/fb7e53.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_fb7e53() -> i32 {
   var res : vec2<bool> = select(vec2<bool>(true), vec2<bool>(true), true);
   return select(0, 1, all((res == vec2<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_fb7e53();
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl b/test/tint/builtins/gen/literal/sign/159665.wgsl
index 1d374bd..91a0eb4 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sign(vec<3, f32>) -> vec<3, f32>
 fn sign_159665() -> vec3<f32>{
   var res: vec3<f32> = sign(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_159665();
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.dxc.hlsl
index 0dd4cc4..bb18ff7 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sign_159665() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_159665()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.fxc.hlsl
index 0dd4cc4..bb18ff7 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sign_159665() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_159665()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.glsl
index 056f3ef..481a77b 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 sign_159665() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sign_159665() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 sign_159665() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sign_159665() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.wgsl
index 43da7e3..fb46663 100644
--- a/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/159665.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sign_159665() -> vec3<f32> {
   var res : vec3<f32> = sign(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_159665();
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl b/test/tint/builtins/gen/literal/sign/160933.wgsl
index 9fd5ef7..0faae40 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sign(vec<4, f16>) -> vec<4, f16>
 fn sign_160933() -> vec4<f16>{
   var res: vec4<f16> = sign(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_160933();
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.dxc.hlsl
index 40a8183..e23aa58 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sign_160933() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
   return;
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.glsl
index e903133..58934a7 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sign_160933() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sign_160933() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.wgsl
index c6a7614..f8543f3 100644
--- a/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/160933.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sign_160933() -> vec4<f16> {
   var res : vec4<f16> = sign(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_160933();
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl
index 878d315..3628848 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn sign(i32) -> i32
 fn sign_3233fa() -> i32{
   var res: i32 = sign(1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_3233fa();
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.dxc.hlsl
index bee7df7..a1ead7b 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int sign_3233fa() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_3233fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.fxc.hlsl
index bee7df7..a1ead7b 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int sign_3233fa() {
   int res = 1;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_3233fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.glsl
index bd9d715..254ab12 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int sign_3233fa() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int sign_3233fa() {
   int res = 1;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.wgsl
index 3f0f85d..51bac1e 100644
--- a/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/3233fa.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn sign_3233fa() -> i32 {
   var res : i32 = sign(1i);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_3233fa();
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl
index e0de0b4..7fa465c 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn sign(vec<4, i32>) -> vec<4, i32>
 fn sign_58d779() -> vec4<i32>{
   var res: vec4<i32> = sign(vec4<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_58d779();
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.dxc.hlsl
index c85db2f..6daed0b 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 sign_58d779() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_58d779()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.fxc.hlsl
index c85db2f..6daed0b 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 sign_58d779() {
   int4 res = (1).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_58d779()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.glsl
index ea931bb..12e3a20 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 sign_58d779() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 sign_58d779() {
   ivec4 res = ivec4(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.wgsl
index 770cf70..75e9b90 100644
--- a/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/58d779.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn sign_58d779() -> vec4<i32> {
   var res : vec4<i32> = sign(vec4<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_58d779();
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl
index 8c04342..9196c5c 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sign(vec<3, f16>) -> vec<3, f16>
 fn sign_5d283a() -> vec3<f16>{
   var res: vec3<f16> = sign(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_5d283a();
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.dxc.hlsl
index 216f118..2bec52b 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sign_5d283a() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
   return;
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.glsl
index e109e9e..66f43a1 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sign_5d283a() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sign_5d283a() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.wgsl
index e33d9b8..0458210 100644
--- a/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/5d283a.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sign_5d283a() -> vec3<f16> {
   var res : vec3<f16> = sign(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_5d283a();
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl
index 197dd19..fdb543b 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sign(f16) -> f16
 fn sign_7c85ea() -> f16{
   var res: f16 = sign(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_7c85ea();
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.dxc.hlsl
index df327ad..bbdfabf 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sign_7c85ea() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sign_7c85ea());
   return;
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.glsl
index 2b9aa6d..a530ad5e 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sign_7c85ea() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sign_7c85ea() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.wgsl
index 9a9821b..223f96d 100644
--- a/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/7c85ea.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sign_7c85ea() -> f16 {
   var res : f16 = sign(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_7c85ea();
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl b/test/tint/builtins/gen/literal/sign/926015.wgsl
index 4f2901d..f40bab5 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn sign(vec<2, i32>) -> vec<2, i32>
 fn sign_926015() -> vec2<i32>{
   var res: vec2<i32> = sign(vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_926015();
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.dxc.hlsl
index f697ae3..9597fd1 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 sign_926015() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_926015()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.fxc.hlsl
index f697ae3..9597fd1 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 sign_926015() {
   int2 res = (1).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_926015()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.glsl
index 8059706..8bc1113 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 sign_926015() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 sign_926015() {
   ivec2 res = ivec2(1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.wgsl
index afe4dba..48ffb8a 100644
--- a/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/926015.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn sign_926015() -> vec2<i32> {
   var res : vec2<i32> = sign(vec2<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_926015();
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl
index 6218dea..c062b3f 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn sign(vec<3, i32>) -> vec<3, i32>
 fn sign_9603b1() -> vec3<i32>{
   var res: vec3<i32> = sign(vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_9603b1();
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.dxc.hlsl
index 37ba1d3..5bca5fe 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 sign_9603b1() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_9603b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.fxc.hlsl
index 37ba1d3..5bca5fe 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 sign_9603b1() {
   int3 res = (1).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_9603b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.glsl
index 4d6e4e7..c4f7c72 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-ivec3 sign_9603b1() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 sign_9603b1() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-ivec3 sign_9603b1() {
-  ivec3 res = ivec3(1);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   ivec3 inner;
   uint pad;
 } prevent_dce;
 
+ivec3 sign_9603b1() {
+  ivec3 res = ivec3(1);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.wgsl
index 40dc3ce..9b9807b 100644
--- a/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/9603b1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn sign_9603b1() -> vec3<i32> {
   var res : vec3<i32> = sign(vec3<i32>(1i));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_9603b1();
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl
index 2bcb53a..fe092e6 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sign(vec<4, f32>) -> vec<4, f32>
 fn sign_b8f634() -> vec4<f32>{
   var res: vec4<f32> = sign(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_b8f634();
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.dxc.hlsl
index a4c08eb..d6a1c4b 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sign_b8f634() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_b8f634()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.fxc.hlsl
index a4c08eb..d6a1c4b 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sign_b8f634() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_b8f634()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.glsl
index d11f362..1788f45 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sign_b8f634() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sign_b8f634() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.wgsl
index 9090e82..96d00a4 100644
--- a/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/b8f634.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sign_b8f634() -> vec4<f32> {
   var res : vec4<f32> = sign(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_b8f634();
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl
index 6b23535..f41a312 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sign(vec<2, f16>) -> vec<2, f16>
 fn sign_ccdb3c() -> vec2<f16>{
   var res: vec2<f16> = sign(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_ccdb3c();
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.dxc.hlsl
index 46d060c..580d1c9 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sign_ccdb3c() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
   return;
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.glsl
index 10963cc..04137d5 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sign_ccdb3c() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sign_ccdb3c() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.wgsl
index b0d37ba..d1ca57e 100644
--- a/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/ccdb3c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sign_ccdb3c() -> vec2<f16> {
   var res : vec2<f16> = sign(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_ccdb3c();
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl
index 0f27cdb..c36d7e3 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sign(vec<2, f32>) -> vec<2, f32>
 fn sign_d065d8() -> vec2<f32>{
   var res: vec2<f32> = sign(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_d065d8();
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.dxc.hlsl
index 79df627..ba24bfb 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sign_d065d8() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_d065d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.fxc.hlsl
index 79df627..ba24bfb 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sign_d065d8() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_d065d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.glsl
index 584127b..b189c4e 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sign_d065d8() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sign_d065d8() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.wgsl
index de42958..4b66ad4 100644
--- a/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/d065d8.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sign_d065d8() -> vec2<f32> {
   var res : vec2<f32> = sign(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_d065d8();
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl
index 6e458c5..093c5a4 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sign(f32) -> f32
 fn sign_dd790e() -> f32{
   var res: f32 = sign(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_dd790e();
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.dxc.hlsl
index 6511a2c..b8c33dc 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sign_dd790e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_dd790e()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.fxc.hlsl
index 6511a2c..b8c33dc 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sign_dd790e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_dd790e()));
   return;
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.glsl
index 4566ca0..ea0f7a4 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sign_dd790e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sign_dd790e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.wgsl
index 4ab7a18..ed33756 100644
--- a/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sign/dd790e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sign_dd790e() -> f32 {
   var res : f32 = sign(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_dd790e();
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl
index 7a3d76e..0df8102 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sin(vec<3, f32>) -> vec<3, f32>
 fn sin_01f241() -> vec3<f32>{
   var res: vec3<f32> = sin(vec3<f32>(1.57079632679f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_01f241();
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl
index 57ea1ad..c105792 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sin_01f241() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sin_01f241()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl
index 57ea1ad..c105792 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sin_01f241() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sin_01f241()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl
index c62a922..9fe0eb6 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 sin_01f241() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sin_01f241() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 sin_01f241() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sin_01f241() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl
index c596b7c..4aa316f 100644
--- a/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/01f241.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sin_01f241() -> vec3<f32> {
   var res : vec3<f32> = sin(vec3<f32>(1.57079637050628662109f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_01f241();
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl
index 001c7ae..4b7d566 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sin(vec<3, f16>) -> vec<3, f16>
 fn sin_2c903b() -> vec3<f16>{
   var res: vec3<f16> = sin(vec3<f16>(1.57079632679h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_2c903b();
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl
index c8045b9..5d225c8 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sin_2c903b() {
   vector<float16_t, 3> res = (float16_t(0.99951171875h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
   return;
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl
index 95394e7..596b8ad 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sin_2c903b() {
   f16vec3 res = f16vec3(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sin_2c903b() {
   f16vec3 res = f16vec3(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl
index c6573e1..32daa18 100644
--- a/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/2c903b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sin_2c903b() -> vec3<f16> {
   var res : vec3<f16> = sin(vec3<f16>(1.5703125h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_2c903b();
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl
index e382481..4c27d49 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sin(vec<2, f16>) -> vec<2, f16>
 fn sin_3cca11() -> vec2<f16>{
   var res: vec2<f16> = sin(vec2<f16>(1.57079632679h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_3cca11();
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl
index fd97abb..28fe21d 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sin_3cca11() {
   vector<float16_t, 2> res = (float16_t(0.99951171875h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
   return;
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl
index 4a3fa87..64f95d5 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sin_3cca11() {
   f16vec2 res = f16vec2(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sin_3cca11() {
   f16vec2 res = f16vec2(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl
index bccb65a..a58855a 100644
--- a/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/3cca11.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sin_3cca11() -> vec2<f16> {
   var res : vec2<f16> = sin(vec2<f16>(1.5703125h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_3cca11();
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl
index 61000ac..90b411b 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sin(vec<4, f32>) -> vec<4, f32>
 fn sin_4e3979() -> vec4<f32>{
   var res: vec4<f32> = sin(vec4<f32>(1.57079632679f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_4e3979();
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl
index 9bd0044..2f72abe 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sin_4e3979() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sin_4e3979()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl
index 9bd0044..2f72abe 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sin_4e3979() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sin_4e3979()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl
index 1ab6bf3..0c78c70 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sin_4e3979() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sin_4e3979() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl
index d675e9d..fa3fba8 100644
--- a/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/4e3979.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sin_4e3979() -> vec4<f32> {
   var res : vec4<f32> = sin(vec4<f32>(1.57079637050628662109f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_4e3979();
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl
index 1118e65..a761731 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sin(vec<4, f16>) -> vec<4, f16>
 fn sin_5c0712() -> vec4<f16>{
   var res: vec4<f16> = sin(vec4<f16>(1.57079632679h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_5c0712();
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl
index a25eb7e..9f1f420 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sin_5c0712() {
   vector<float16_t, 4> res = (float16_t(0.99951171875h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
   return;
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl
index 94eb330..6aa3311 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sin_5c0712() {
   f16vec4 res = f16vec4(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sin_5c0712() {
   f16vec4 res = f16vec4(0.99951171875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl
index 15f10fb..9684f50 100644
--- a/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/5c0712.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sin_5c0712() -> vec4<f16> {
   var res : vec4<f16> = sin(vec4<f16>(1.5703125h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_5c0712();
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl
index 715cdad..0a3ed17 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sin(f16) -> f16
 fn sin_66a59f() -> f16{
   var res: f16 = sin(1.57079632679h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_66a59f();
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl
index 96588ff..e07f5de 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sin_66a59f() {
   float16_t res = float16_t(0.99951171875h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sin_66a59f());
   return;
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl
index b7eda8a..74ae3ee 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sin_66a59f() {
   float16_t res = 0.99951171875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sin_66a59f() {
   float16_t res = 0.99951171875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl
index 0f61354..8a43ec7 100644
--- a/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/66a59f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sin_66a59f() -> f16 {
   var res : f16 = sin(1.5703125h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_66a59f();
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl
index 7617397..4a64fd5 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sin(f32) -> f32
 fn sin_b78c91() -> f32{
   var res: f32 = sin(1.57079632679f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_b78c91();
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl
index 14a1db8..07b1b17 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sin_b78c91() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sin_b78c91()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl
index 14a1db8..07b1b17 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sin_b78c91() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sin_b78c91()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl
index d697d5b..8dec59d 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sin_b78c91() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sin_b78c91() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl
index 351fe93..45eb083 100644
--- a/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/b78c91.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sin_b78c91() -> f32 {
   var res : f32 = sin(1.57079637050628662109f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_b78c91();
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl
index ec773e2..3b66401 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sin(vec<2, f32>) -> vec<2, f32>
 fn sin_fc8bc4() -> vec2<f32>{
   var res: vec2<f32> = sin(vec2<f32>(1.57079632679f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_fc8bc4();
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl
index c3b4668..829f7d7 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sin_fc8bc4() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl
index c3b4668..829f7d7 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sin_fc8bc4() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl
index e1b24e8..575fb0d 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sin_fc8bc4() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sin_fc8bc4() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl
index afc2e3c..932e185 100644
--- a/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sin/fc8bc4.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sin_fc8bc4() -> vec2<f32> {
   var res : vec2<f32> = sin(vec2<f32>(1.57079637050628662109f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_fc8bc4();
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl
index a9ef9f8..7328b98 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sinh(vec<3, f16>) -> vec<3, f16>
 fn sinh_0908c1() -> vec3<f16>{
   var res: vec3<f16> = sinh(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_0908c1();
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl
index bc984cf..9cb459b 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sinh_0908c1() {
   vector<float16_t, 3> res = (float16_t(1.1748046875h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl
index f5f3934..c1fe8db 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sinh_0908c1() {
   f16vec3 res = f16vec3(1.1748046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sinh_0908c1() {
   f16vec3 res = f16vec3(1.1748046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.wgsl
index 527ef41..1c51fd7 100644
--- a/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/0908c1.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sinh_0908c1() -> vec3<f16> {
   var res : vec3<f16> = sinh(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_0908c1();
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl
index 353ade0..bb4434c 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sinh(vec<4, f32>) -> vec<4, f32>
 fn sinh_445e33() -> vec4<f32>{
   var res: vec4<f32> = sinh(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_445e33();
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl
index 42881ce..7848a4e 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sinh_445e33() {
   float4 res = (1.17520117759704589844f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sinh_445e33()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl
index 42881ce..7848a4e 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sinh_445e33() {
   float4 res = (1.17520117759704589844f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sinh_445e33()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl
index d2edbf6..b3bbb20 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sinh_445e33() {
   vec4 res = vec4(1.17520117759704589844f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sinh_445e33() {
   vec4 res = vec4(1.17520117759704589844f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.wgsl
index 52743b3..0c4fcdb 100644
--- a/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/445e33.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sinh_445e33() -> vec4<f32> {
   var res : vec4<f32> = sinh(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_445e33();
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl
index 36ad592..05629cb 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sinh(f16) -> f16
 fn sinh_69cce2() -> f16{
   var res: f16 = sinh(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_69cce2();
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl
index 2dde8dc..4c9a68b 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sinh_69cce2() {
   float16_t res = float16_t(1.1748046875h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sinh_69cce2());
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl
index dfd9094..8eca252 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sinh_69cce2() {
   float16_t res = 1.1748046875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sinh_69cce2() {
   float16_t res = 1.1748046875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.wgsl
index e658a78..a604002 100644
--- a/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/69cce2.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sinh_69cce2() -> f16 {
   var res : f16 = sinh(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_69cce2();
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl
index ee0e579..f8a69de 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sinh(f32) -> f32
 fn sinh_7bb598() -> f32{
   var res: f32 = sinh(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_7bb598();
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl
index 4339fcc..8df64c6 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sinh_7bb598() {
   float res = 1.17520117759704589844f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sinh_7bb598()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl
index 4339fcc..8df64c6 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sinh_7bb598() {
   float res = 1.17520117759704589844f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sinh_7bb598()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl
index 4c886c0..18ed0ed 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sinh_7bb598() {
   float res = 1.17520117759704589844f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sinh_7bb598() {
   float res = 1.17520117759704589844f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.wgsl
index 3ae4175..4c5243d 100644
--- a/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/7bb598.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sinh_7bb598() -> f32 {
   var res : f32 = sinh(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_7bb598();
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl
index ad63ef4..eac7e64 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sinh(vec<2, f16>) -> vec<2, f16>
 fn sinh_924f19() -> vec2<f16>{
   var res: vec2<f16> = sinh(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_924f19();
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl
index 52f72cb..2bb91bd 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sinh_924f19() {
   vector<float16_t, 2> res = (float16_t(1.1748046875h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl
index 46f5e24..440a708 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sinh_924f19() {
   f16vec2 res = f16vec2(1.1748046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sinh_924f19() {
   f16vec2 res = f16vec2(1.1748046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.wgsl
index 5860101..c5a39ed 100644
--- a/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/924f19.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sinh_924f19() -> vec2<f16> {
   var res : vec2<f16> = sinh(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_924f19();
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl
index 2a8925a..6713987 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sinh(vec<2, f32>) -> vec<2, f32>
 fn sinh_b9860e() -> vec2<f32>{
   var res: vec2<f32> = sinh(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_b9860e();
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl
index 7d03630..4da38b9 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sinh_b9860e() {
   float2 res = (1.17520117759704589844f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sinh_b9860e()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl
index 7d03630..4da38b9 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sinh_b9860e() {
   float2 res = (1.17520117759704589844f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sinh_b9860e()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl
index 955cdab..9603748 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sinh_b9860e() {
   vec2 res = vec2(1.17520117759704589844f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sinh_b9860e() {
   vec2 res = vec2(1.17520117759704589844f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.wgsl
index 07e26e5..320d0f9 100644
--- a/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/b9860e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sinh_b9860e() -> vec2<f32> {
   var res : vec2<f32> = sinh(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_b9860e();
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl
index 704cfe7..9b71073 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sinh(vec<4, f16>) -> vec<4, f16>
 fn sinh_ba7e25() -> vec4<f16>{
   var res: vec4<f16> = sinh(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_ba7e25();
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl
index 2fd6dab..937d5d1 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sinh_ba7e25() {
   vector<float16_t, 4> res = (float16_t(1.1748046875h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl
index 6ec03fa..da00b42 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sinh_ba7e25() {
   f16vec4 res = f16vec4(1.1748046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sinh_ba7e25() {
   f16vec4 res = f16vec4(1.1748046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.wgsl
index faee32e..ebb1326 100644
--- a/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/ba7e25.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sinh_ba7e25() -> vec4<f16> {
   var res : vec4<f16> = sinh(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_ba7e25();
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl
index 6e15dd9..a28b131 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sinh(vec<3, f32>) -> vec<3, f32>
 fn sinh_c9a5eb() -> vec3<f32>{
   var res: vec3<f32> = sinh(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_c9a5eb();
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl
index 03d997c..dfff7eb 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sinh_c9a5eb() {
   float3 res = (1.17520117759704589844f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl
index 03d997c..dfff7eb 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sinh_c9a5eb() {
   float3 res = (1.17520117759704589844f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl
index c449148..943cc41 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 sinh_c9a5eb() {
-  vec3 res = vec3(1.17520117759704589844f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sinh_c9a5eb() {
+  vec3 res = vec3(1.17520117759704589844f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 sinh_c9a5eb() {
-  vec3 res = vec3(1.17520117759704589844f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sinh_c9a5eb() {
+  vec3 res = vec3(1.17520117759704589844f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.wgsl
index ec4f538..8d4d69e 100644
--- a/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sinh/c9a5eb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sinh_c9a5eb() -> vec3<f32> {
   var res : vec3<f32> = sinh(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_c9a5eb();
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl
index 1caa60f..0b69dd5 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn smoothstep(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn smoothstep_12c031() -> vec2<f16>{
   var res: vec2<f16> = smoothstep(vec2<f16>(2.h), vec2<f16>(4.h), vec2<f16>(3.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_12c031();
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.dxc.hlsl
index 71d407f..28defba 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> smoothstep_12c031() {
   vector<float16_t, 2> res = (float16_t(0.5h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.glsl
index 7af05f5..13f0f08 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 smoothstep_12c031() {
   f16vec2 res = f16vec2(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 smoothstep_12c031() {
   f16vec2 res = f16vec2(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.wgsl
index 87cc4c9..7c19722 100644
--- a/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/12c031.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn smoothstep_12c031() -> vec2<f16> {
   var res : vec2<f16> = smoothstep(vec2<f16>(2.0h), vec2<f16>(4.0h), vec2<f16>(3.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_12c031();
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl
index 1dc33cb..e386d0d 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn smoothstep(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn smoothstep_392c19() -> vec2<f32>{
   var res: vec2<f32> = smoothstep(vec2<f32>(2.f), vec2<f32>(4.f), vec2<f32>(3.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_392c19();
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.dxc.hlsl
index 8407497..a3acce5 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 smoothstep_392c19() {
   float2 res = (0.5f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.fxc.hlsl
index 8407497..a3acce5 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 smoothstep_392c19() {
   float2 res = (0.5f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.glsl
index 66aea62..cec8305 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 smoothstep_392c19() {
   vec2 res = vec2(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 smoothstep_392c19() {
   vec2 res = vec2(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.wgsl
index 99d7a72..43d5f98 100644
--- a/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/392c19.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn smoothstep_392c19() -> vec2<f32> {
   var res : vec2<f32> = smoothstep(vec2<f32>(2.0f), vec2<f32>(4.0f), vec2<f32>(3.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_392c19();
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl
index 720aab6..ce07563 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn smoothstep(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn smoothstep_40864c() -> vec4<f32>{
   var res: vec4<f32> = smoothstep(vec4<f32>(2.f), vec4<f32>(4.f), vec4<f32>(3.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_40864c();
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.dxc.hlsl
index 7c0ddba..22dd4f5 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 smoothstep_40864c() {
   float4 res = (0.5f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.fxc.hlsl
index 7c0ddba..22dd4f5 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 smoothstep_40864c() {
   float4 res = (0.5f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.glsl
index dee8b92..f17df18 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 smoothstep_40864c() {
   vec4 res = vec4(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 smoothstep_40864c() {
   vec4 res = vec4(0.5f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.wgsl
index 9ca3c40..8f38aee 100644
--- a/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/40864c.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn smoothstep_40864c() -> vec4<f32> {
   var res : vec4<f32> = smoothstep(vec4<f32>(2.0f), vec4<f32>(4.0f), vec4<f32>(3.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_40864c();
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl
index 34e473e..e6942dc 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn smoothstep(f16, f16, f16) -> f16
 fn smoothstep_586e12() -> f16{
   var res: f16 = smoothstep(2.h, 4.h, 3.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_586e12();
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.dxc.hlsl
index 7583785..a902ea8 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t smoothstep_586e12() {
   float16_t res = float16_t(0.5h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.glsl
index 9da3451..960db35 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t smoothstep_586e12() {
   float16_t res = 0.5hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t smoothstep_586e12() {
   float16_t res = 0.5hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.wgsl
index fcaa6a4..34adc53 100644
--- a/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/586e12.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn smoothstep_586e12() -> f16 {
   var res : f16 = smoothstep(2.0h, 4.0h, 3.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_586e12();
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl
index 472d181..38246a5 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn smoothstep(f32, f32, f32) -> f32
 fn smoothstep_6c4975() -> f32{
   var res: f32 = smoothstep(2.f, 4.f, 3.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6c4975();
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.dxc.hlsl
index ce52efa..20cf251 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float smoothstep_6c4975() {
   float res = 0.5f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.fxc.hlsl
index ce52efa..20cf251 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float smoothstep_6c4975() {
   float res = 0.5f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.glsl
index 85ac350..19220be 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float smoothstep_6c4975() {
   float res = 0.5f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float smoothstep_6c4975() {
   float res = 0.5f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.wgsl
index d80717c..a55d786 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6c4975.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn smoothstep_6c4975() -> f32 {
   var res : f32 = smoothstep(2.0f, 4.0f, 3.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6c4975();
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl
index 770d6fc..ee0d23c 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn smoothstep(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn smoothstep_6e7a74() -> vec3<f16>{
   var res: vec3<f16> = smoothstep(vec3<f16>(2.h), vec3<f16>(4.h), vec3<f16>(3.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6e7a74();
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.dxc.hlsl
index d7bb45a..d97d5d3 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> smoothstep_6e7a74() {
   vector<float16_t, 3> res = (float16_t(0.5h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.glsl
index e00556c..c2b7da1 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 smoothstep_6e7a74() {
   f16vec3 res = f16vec3(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 smoothstep_6e7a74() {
   f16vec3 res = f16vec3(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.wgsl
index 71ba2bc..eafccb6 100644
--- a/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/6e7a74.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn smoothstep_6e7a74() -> vec3<f16> {
   var res : vec3<f16> = smoothstep(vec3<f16>(2.0h), vec3<f16>(4.0h), vec3<f16>(3.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6e7a74();
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl
index d9548b7..356a647 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn smoothstep(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn smoothstep_aad1db() -> vec3<f32>{
   var res: vec3<f32> = smoothstep(vec3<f32>(2.f), vec3<f32>(4.f), vec3<f32>(3.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_aad1db();
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.dxc.hlsl
index 1d96019..a15992b 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 smoothstep_aad1db() {
   float3 res = (0.5f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.fxc.hlsl
index 1d96019..a15992b 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 smoothstep_aad1db() {
   float3 res = (0.5f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.glsl
index a4ab92b..e61e1f9 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 smoothstep_aad1db() {
-  vec3 res = vec3(0.5f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 smoothstep_aad1db() {
+  vec3 res = vec3(0.5f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 smoothstep_aad1db() {
-  vec3 res = vec3(0.5f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 smoothstep_aad1db() {
+  vec3 res = vec3(0.5f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.wgsl
index 6c31e25..399f71a 100644
--- a/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/aad1db.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn smoothstep_aad1db() -> vec3<f32> {
   var res : vec3<f32> = smoothstep(vec3<f32>(2.0f), vec3<f32>(4.0f), vec3<f32>(3.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_aad1db();
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl
index afe0bca..2a69aeb 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn smoothstep(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn smoothstep_c43ebd() -> vec4<f16>{
   var res: vec4<f16> = smoothstep(vec4<f16>(2.h), vec4<f16>(4.h), vec4<f16>(3.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_c43ebd();
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.dxc.hlsl
index 25572b8..599db25 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> smoothstep_c43ebd() {
   vector<float16_t, 4> res = (float16_t(0.5h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
   return;
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.glsl
index d3aeac6..a4f8bbc 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 smoothstep_c43ebd() {
   f16vec4 res = f16vec4(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 smoothstep_c43ebd() {
   f16vec4 res = f16vec4(0.5hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.wgsl
index 90423c8..2d63268 100644
--- a/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/smoothstep/c43ebd.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn smoothstep_c43ebd() -> vec4<f16> {
   var res : vec4<f16> = smoothstep(vec4<f16>(2.0h), vec4<f16>(4.0h), vec4<f16>(3.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_c43ebd();
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl
index cf9840c..c084e1b 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sqrt(f32) -> f32
 fn sqrt_20c74e() -> f32{
   var res: f32 = sqrt(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_20c74e();
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.dxc.hlsl
index 037e2d3..7d5ce97 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sqrt_20c74e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sqrt_20c74e()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.fxc.hlsl
index 037e2d3..7d5ce97 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sqrt_20c74e() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sqrt_20c74e()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.glsl
index c518452..644f416 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sqrt_20c74e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sqrt_20c74e() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.wgsl
index 156784d..5cde7e4 100644
--- a/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/20c74e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sqrt_20c74e() -> f32 {
   var res : f32 = sqrt(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_20c74e();
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl
index cf576f0..fdc73a1 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sqrt(vec<4, f16>) -> vec<4, f16>
 fn sqrt_803d1c() -> vec4<f16>{
   var res: vec4<f16> = sqrt(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_803d1c();
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.dxc.hlsl
index a954a65..5d41e41 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sqrt_803d1c() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.glsl
index bde6bd6..c844d00 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sqrt_803d1c() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sqrt_803d1c() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.wgsl
index 90abf57..d7e0aa8 100644
--- a/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/803d1c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sqrt_803d1c() -> vec4<f16> {
   var res : vec4<f16> = sqrt(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_803d1c();
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl
index e2679b6..9e2f9ce 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sqrt(vec<3, f16>) -> vec<3, f16>
 fn sqrt_895a0c() -> vec3<f16>{
   var res: vec3<f16> = sqrt(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_895a0c();
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.dxc.hlsl
index fb5c769..04742e8 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sqrt_895a0c() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.glsl
index 84bae66..7526850 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sqrt_895a0c() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sqrt_895a0c() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.wgsl
index 29b2b22..1f59144 100644
--- a/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/895a0c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sqrt_895a0c() -> vec3<f16> {
   var res : vec3<f16> = sqrt(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_895a0c();
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl
index e1ad4e0..ecaf1b9 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sqrt(vec<2, f32>) -> vec<2, f32>
 fn sqrt_8c7024() -> vec2<f32>{
   var res: vec2<f32> = sqrt(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_8c7024();
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.dxc.hlsl
index 58b7a5e..3135aca 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sqrt_8c7024() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.fxc.hlsl
index 58b7a5e..3135aca 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sqrt_8c7024() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.glsl
index 20e2022..1440726 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sqrt_8c7024() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sqrt_8c7024() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.wgsl
index 3362af6..edc84b8 100644
--- a/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/8c7024.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sqrt_8c7024() -> vec2<f32> {
   var res : vec2<f32> = sqrt(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_8c7024();
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl
index 24b4378..91251c4 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sqrt(vec<4, f32>) -> vec<4, f32>
 fn sqrt_aa0d7a() -> vec4<f32>{
   var res: vec4<f32> = sqrt(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_aa0d7a();
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.dxc.hlsl
index b01607a..ec6294a 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sqrt_aa0d7a() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.fxc.hlsl
index b01607a..ec6294a 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sqrt_aa0d7a() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.glsl
index 7ce96cc..5c43fc6 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sqrt_aa0d7a() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sqrt_aa0d7a() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.wgsl
index 43c5619..80e240d 100644
--- a/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/aa0d7a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sqrt_aa0d7a() -> vec4<f32> {
   var res : vec4<f32> = sqrt(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_aa0d7a();
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl
index 018d08d..e723537 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sqrt(vec<2, f16>) -> vec<2, f16>
 fn sqrt_d9ab4d() -> vec2<f16>{
   var res: vec2<f16> = sqrt(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_d9ab4d();
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.dxc.hlsl
index 5df58996..97830c5 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sqrt_d9ab4d() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.glsl
index e8a0403..606c166 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sqrt_d9ab4d() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sqrt_d9ab4d() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.wgsl
index a2e769a..94090b0 100644
--- a/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/d9ab4d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sqrt_d9ab4d() -> vec2<f16> {
   var res : vec2<f16> = sqrt(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_d9ab4d();
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl
index ff164f9..c77c01b 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sqrt(f16) -> f16
 fn sqrt_ec33e9() -> f16{
   var res: f16 = sqrt(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_ec33e9();
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.dxc.hlsl
index 5ec5bc2..c6ca505 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sqrt_ec33e9() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.glsl
index aee7a4c..9ae183c 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sqrt_ec33e9() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sqrt_ec33e9() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.wgsl
index ad1af6e..ed84f5f 100644
--- a/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/ec33e9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sqrt_ec33e9() -> f16 {
   var res : f16 = sqrt(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_ec33e9();
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl
index d5778cb..cf465b6 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sqrt(vec<3, f32>) -> vec<3, f32>
 fn sqrt_f8c59a() -> vec3<f32>{
   var res: vec3<f32> = sqrt(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_f8c59a();
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.dxc.hlsl
index 40bef2c..1ce8b67 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sqrt_f8c59a() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.fxc.hlsl
index 40bef2c..1ce8b67 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sqrt_f8c59a() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
   return;
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.glsl
index 0f91047..8d761dd 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 sqrt_f8c59a() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sqrt_f8c59a() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 sqrt_f8c59a() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 sqrt_f8c59a() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.wgsl
index e546eb7..581488d 100644
--- a/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/sqrt/f8c59a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sqrt_f8c59a() -> vec3<f32> {
   var res : vec3<f32> = sqrt(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_f8c59a();
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl
index ac0cf8a..7b9a4ff 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn step(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn step_07cb06() -> vec2<f16>{
   var res: vec2<f16> = step(vec2<f16>(1.h), vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_07cb06();
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.dxc.hlsl
index 23585df..9097b1d 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> step_07cb06() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
   return;
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.glsl
index 9ef5780..cf9d002 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 step_07cb06() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 step_07cb06() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.wgsl
index 45bbba7..11c8190 100644
--- a/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/07cb06.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn step_07cb06() -> vec2<f16> {
   var res : vec2<f16> = step(vec2<f16>(1.0h), vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_07cb06();
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl
index 64794f8..73153c7 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn step(f32, f32) -> f32
 fn step_0b073b() -> f32{
   var res: f32 = step(1.f, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_0b073b();
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.dxc.hlsl
index f48bc4b..f68a658 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float step_0b073b() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(step_0b073b()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.fxc.hlsl
index f48bc4b..f68a658 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float step_0b073b() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(step_0b073b()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.glsl
index c01916e..7d87d40 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float step_0b073b() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float step_0b073b() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.wgsl
index 5e61edb..79def2b 100644
--- a/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/0b073b.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn step_0b073b() -> f32 {
   var res : f32 = step(1.0f, 1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_0b073b();
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl b/test/tint/builtins/gen/literal/step/19accd.wgsl
index 58bef46..8259f8e 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn step(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn step_19accd() -> vec2<f32>{
   var res: vec2<f32> = step(vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_19accd();
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.dxc.hlsl
index 10202f9..01c1040 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 step_19accd() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(step_19accd()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.fxc.hlsl
index 10202f9..01c1040 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 step_19accd() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(step_19accd()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.glsl
index f2cfcac..35a3510 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 step_19accd() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 step_19accd() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.wgsl
index 7cb4f50..4159e18 100644
--- a/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/19accd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn step_19accd() -> vec2<f32> {
   var res : vec2<f32> = step(vec2<f32>(1.0f), vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_19accd();
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl b/test/tint/builtins/gen/literal/step/334303.wgsl
index 7e9671b..e937dc5 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn step(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn step_334303() -> vec3<f32>{
   var res: vec3<f32> = step(vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_334303();
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.dxc.hlsl
index cdf6e4c..4226c82 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 step_334303() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(step_334303()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.fxc.hlsl
index cdf6e4c..4226c82 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 step_334303() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(step_334303()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.glsl
index 8f1706c..3c56996 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 step_334303() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 step_334303() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 step_334303() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 step_334303() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.wgsl
index 4f92c86..83653b4 100644
--- a/test/tint/builtins/gen/literal/step/334303.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/334303.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn step_334303() -> vec3<f32> {
   var res : vec3<f32> = step(vec3<f32>(1.0f), vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_334303();
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl b/test/tint/builtins/gen/literal/step/630d07.wgsl
index f738c0d..cf801c1 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn step(f16, f16) -> f16
 fn step_630d07() -> f16{
   var res: f16 = step(1.h, 1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_630d07();
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.dxc.hlsl
index cb34fe1..af4b821 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t step_630d07() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, step_630d07());
   return;
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.glsl
index f7f2fb8..57b4052 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t step_630d07() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t step_630d07() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.wgsl
index ba7072c..36eb1ec 100644
--- a/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/630d07.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn step_630d07() -> f16 {
   var res : f16 = step(1.0h, 1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_630d07();
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl b/test/tint/builtins/gen/literal/step/baa320.wgsl
index 7c710c5..b8d205a 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn step(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn step_baa320() -> vec4<f16>{
   var res: vec4<f16> = step(vec4<f16>(1.h), vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_baa320();
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.dxc.hlsl
index c29977d..6b0ada3 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> step_baa320() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
   return;
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.glsl
index 5f56b81..c648a53 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 step_baa320() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 step_baa320() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.wgsl
index eb831f1..7513953 100644
--- a/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/baa320.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn step_baa320() -> vec4<f16> {
   var res : vec4<f16> = step(vec4<f16>(1.0h), vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_baa320();
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl
index 3d9bd6c..27bb4e9 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn step(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn step_cc6b61() -> vec3<f16>{
   var res: vec3<f16> = step(vec3<f16>(1.h), vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_cc6b61();
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.dxc.hlsl
index 6cd8f2d..4a92429 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> step_cc6b61() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
   return;
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.glsl
index 8fe094c..5497004 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 step_cc6b61() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 step_cc6b61() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.wgsl
index 49416a6..30039e9 100644
--- a/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/cc6b61.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn step_cc6b61() -> vec3<f16> {
   var res : vec3<f16> = step(vec3<f16>(1.0h), vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_cc6b61();
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl
index 2cb58f9..3aec504 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn step(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn step_e2b337() -> vec4<f32>{
   var res: vec4<f32> = step(vec4<f32>(1.f), vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_e2b337();
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.dxc.hlsl
index 7321c89..51596df 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 step_e2b337() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(step_e2b337()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.fxc.hlsl
index 7321c89..51596df 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 step_e2b337() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(step_e2b337()));
   return;
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.glsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.glsl
index 726227b..5b2e40c 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 step_e2b337() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 step_e2b337() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.wgsl
index 911a701..476aef8 100644
--- a/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/step/e2b337.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn step_e2b337() -> vec4<f32> {
   var res : vec4<f32> = step(vec4<f32>(1.0f), vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_e2b337();
diff --git a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl
index 70256f9..ea092be 100644
--- a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn subgroupBallot() -> vec4<u32>
 fn subgroupBallot_7e6d0e() -> vec4<u32>{
   var res: vec4<u32> = subgroupBallot();
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBallot_7e6d0e();
diff --git a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl
index 5ee6b14..1eab1721 100644
--- a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 subgroupBallot_7e6d0e() {
   uint4 res = WaveActiveBallot(true);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBallot_7e6d0e()));
diff --git a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.wgsl
index 4ed9f76..7fa2b9b 100644
--- a/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBallot/7e6d0e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn subgroupBallot_7e6d0e() -> vec4<u32> {
   var res : vec4<u32> = subgroupBallot();
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBallot_7e6d0e();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl
index 5f8bd27..b13e020 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl
@@ -42,13 +42,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn subgroupBroadcast(value: f16, @const sourceLaneIndex: u32) -> f16
 fn subgroupBroadcast_07e2d8() -> f16{
   var res: f16 = subgroupBroadcast(1.h, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_07e2d8();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl
index 7f6d362..cfa76e8 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t subgroupBroadcast_07e2d8() {
   float16_t res = WaveReadLaneAt(float16_t(1.0h), 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<float16_t>(0u, subgroupBroadcast_07e2d8());
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.wgsl
index 4e4f89b..95d6f1f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/07e2d8.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn subgroupBroadcast_07e2d8() -> f16 {
   var res : f16 = subgroupBroadcast(1.0h, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_07e2d8();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl
index f4feee1..1697700 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn subgroupBroadcast(value: f32, @const sourceLaneIndex: u32) -> f32
 fn subgroupBroadcast_08beca() -> f32{
   var res: f32 = subgroupBroadcast(1.f, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_08beca();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
index 592d5d5..b92a1d4 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float subgroupBroadcast_08beca() {
   float res = WaveReadLaneAt(1.0f, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store(0u, asuint(subgroupBroadcast_08beca()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl
index 1ac4d66..9fd18e9 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn subgroupBroadcast_08beca() -> f32 {
   var res : f32 = subgroupBroadcast(1.0f, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_08beca();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl
index aba5227..a45acf6 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl
@@ -42,13 +42,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn subgroupBroadcast(value: vec<4, f16>, @const sourceLaneIndex: u32) -> vec<4, f16>
 fn subgroupBroadcast_0f44e2() -> vec4<f16>{
   var res: vec4<f16> = subgroupBroadcast(vec4<f16>(1.h), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_0f44e2();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl
index 1d67973..0b969cb 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> subgroupBroadcast_0f44e2() {
   vector<float16_t, 4> res = WaveReadLaneAt((float16_t(1.0h)).xxxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, subgroupBroadcast_0f44e2());
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.wgsl
index 3c6393a..f91b82c 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/0f44e2.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn subgroupBroadcast_0f44e2() -> vec4<f16> {
   var res : vec4<f16> = subgroupBroadcast(vec4<f16>(1.0h), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_0f44e2();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl
index 7fd4c3c..0537b0b 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl
@@ -42,13 +42,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn subgroupBroadcast(value: vec<2, f16>, @const sourceLaneIndex: u32) -> vec<2, f16>
 fn subgroupBroadcast_13f36c() -> vec2<f16>{
   var res: vec2<f16> = subgroupBroadcast(vec2<f16>(1.h), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_13f36c();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl
index b7982e7..a980d66 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> subgroupBroadcast_13f36c() {
   vector<float16_t, 2> res = WaveReadLaneAt((float16_t(1.0h)).xx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, subgroupBroadcast_13f36c());
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.wgsl
index 765d2cd..7da1c36 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/13f36c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn subgroupBroadcast_13f36c() -> vec2<f16> {
   var res : vec2<f16> = subgroupBroadcast(vec2<f16>(1.0h), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_13f36c();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl
index 864ac74..22c5c51 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn subgroupBroadcast(value: i32, @const sourceLaneIndex: u32) -> i32
 fn subgroupBroadcast_1d79c7() -> i32{
   var res: i32 = subgroupBroadcast(1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_1d79c7();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
index 9c502da..7cb0e0b 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int subgroupBroadcast_1d79c7() {
   int res = WaveReadLaneAt(1, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store(0u, asuint(subgroupBroadcast_1d79c7()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
index 752e986..535671f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn subgroupBroadcast_1d79c7() -> i32 {
   var res : i32 = subgroupBroadcast(1i, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_1d79c7();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl
index a8e34f5..1c0a9b3 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn subgroupBroadcast(value: vec<4, u32>, @const sourceLaneIndex: u32) -> vec<4, u32>
 fn subgroupBroadcast_279027() -> vec4<u32>{
   var res: vec4<u32> = subgroupBroadcast(vec4<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_279027();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl
index c25393a..dee396e 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 subgroupBroadcast_279027() {
   uint4 res = WaveReadLaneAt((1u).xxxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBroadcast_279027()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.wgsl
index ed90f0f..259e860 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/279027.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn subgroupBroadcast_279027() -> vec4<u32> {
   var res : vec4<u32> = subgroupBroadcast(vec4<u32>(1u), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_279027();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl
index 8ae2f71..40ca927 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn subgroupBroadcast(value: vec<3, u32>, @const sourceLaneIndex: u32) -> vec<3, u32>
 fn subgroupBroadcast_34fa3d() -> vec3<u32>{
   var res: vec3<u32> = subgroupBroadcast(vec3<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_34fa3d();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl
index 8f0c191..cdc6ce2 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 subgroupBroadcast_34fa3d() {
   uint3 res = WaveReadLaneAt((1u).xxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store3(0u, asuint(subgroupBroadcast_34fa3d()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.wgsl
index 6be2d9f..2400885 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/34fa3d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn subgroupBroadcast_34fa3d() -> vec3<u32> {
   var res : vec3<u32> = subgroupBroadcast(vec3<u32>(1u), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_34fa3d();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl
index ea9a6c8..9ae3413 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn subgroupBroadcast(value: vec<2, i32>, @const sourceLaneIndex: u32) -> vec<2, i32>
 fn subgroupBroadcast_3e6879() -> vec2<i32>{
   var res: vec2<i32> = subgroupBroadcast(vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_3e6879();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl
index db4602e..efdd370 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 subgroupBroadcast_3e6879() {
   int2 res = WaveReadLaneAt((1).xx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store2(0u, asuint(subgroupBroadcast_3e6879()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.wgsl
index 039702a..0452ead 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/3e6879.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn subgroupBroadcast_3e6879() -> vec2<i32> {
   var res : vec2<i32> = subgroupBroadcast(vec2<i32>(1i), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_3e6879();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl
index b6c32c1..80e61fa 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl
@@ -42,13 +42,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn subgroupBroadcast(value: vec<3, f16>, @const sourceLaneIndex: u32) -> vec<3, f16>
 fn subgroupBroadcast_41e5d7() -> vec3<f16>{
   var res: vec3<f16> = subgroupBroadcast(vec3<f16>(1.h), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_41e5d7();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl
index e8fc510..04f3287 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> subgroupBroadcast_41e5d7() {
   vector<float16_t, 3> res = WaveReadLaneAt((float16_t(1.0h)).xxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, subgroupBroadcast_41e5d7());
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.wgsl
index 7146acb..76698c9 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/41e5d7.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn subgroupBroadcast_41e5d7() -> vec3<f16> {
   var res : vec3<f16> = subgroupBroadcast(vec3<f16>(1.0h), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_41e5d7();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl
index cab5a0b..cdd1efd 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn subgroupBroadcast(value: vec<2, u32>, @const sourceLaneIndex: u32) -> vec<2, u32>
 fn subgroupBroadcast_4a4334() -> vec2<u32>{
   var res: vec2<u32> = subgroupBroadcast(vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_4a4334();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl
index 54c78e3..08d9157 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 subgroupBroadcast_4a4334() {
   uint2 res = WaveReadLaneAt((1u).xx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store2(0u, asuint(subgroupBroadcast_4a4334()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.wgsl
index 422fe57..7b9f9b3 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/4a4334.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn subgroupBroadcast_4a4334() -> vec2<u32> {
   var res : vec2<u32> = subgroupBroadcast(vec2<u32>(1u), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_4a4334();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl
index 5d71d94..026e88f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn subgroupBroadcast(value: vec<2, f32>, @const sourceLaneIndex: u32) -> vec<2, f32>
 fn subgroupBroadcast_5196c8() -> vec2<f32>{
   var res: vec2<f32> = subgroupBroadcast(vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_5196c8();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl
index 1541575..f5092f0 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 subgroupBroadcast_5196c8() {
   float2 res = WaveReadLaneAt((1.0f).xx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store2(0u, asuint(subgroupBroadcast_5196c8()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.wgsl
index 0d8967c..5a0bc70 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/5196c8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn subgroupBroadcast_5196c8() -> vec2<f32> {
   var res : vec2<f32> = subgroupBroadcast(vec2<f32>(1.0f), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_5196c8();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl
index c8962e4..4fe25c8 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn subgroupBroadcast(value: vec<3, f32>, @const sourceLaneIndex: u32) -> vec<3, f32>
 fn subgroupBroadcast_912ff5() -> vec3<f32>{
   var res: vec3<f32> = subgroupBroadcast(vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_912ff5();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl
index b170c09..34ab084 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 subgroupBroadcast_912ff5() {
   float3 res = WaveReadLaneAt((1.0f).xxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store3(0u, asuint(subgroupBroadcast_912ff5()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.wgsl
index 2149720..2579ab6 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/912ff5.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn subgroupBroadcast_912ff5() -> vec3<f32> {
   var res : vec3<f32> = subgroupBroadcast(vec3<f32>(1.0f), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_912ff5();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl
index f0ea17d..3844519 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn subgroupBroadcast(value: vec<4, f32>, @const sourceLaneIndex: u32) -> vec<4, f32>
 fn subgroupBroadcast_b7e93b() -> vec4<f32>{
   var res: vec4<f32> = subgroupBroadcast(vec4<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_b7e93b();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl
index f41650b..2b1c3b8 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 subgroupBroadcast_b7e93b() {
   float4 res = WaveReadLaneAt((1.0f).xxxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBroadcast_b7e93b()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.wgsl
index 73083ee..d78a536 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/b7e93b.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn subgroupBroadcast_b7e93b() -> vec4<f32> {
   var res : vec4<f32> = subgroupBroadcast(vec4<f32>(1.0f), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_b7e93b();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl
index 93624fd..ca6ef8d 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn subgroupBroadcast(value: u32, @const sourceLaneIndex: u32) -> u32
 fn subgroupBroadcast_c36fe1() -> u32{
   var res: u32 = subgroupBroadcast(1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_c36fe1();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
index 8dd19b2..8ac27a6 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint subgroupBroadcast_c36fe1() {
   uint res = WaveReadLaneAt(1u, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store(0u, asuint(subgroupBroadcast_c36fe1()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
index d89e08b..c4998644 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn subgroupBroadcast_c36fe1() -> u32 {
   var res : u32 = subgroupBroadcast(1u, 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_c36fe1();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl
index 4d6ff3d..b1ad80f 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn subgroupBroadcast(value: vec<3, i32>, @const sourceLaneIndex: u32) -> vec<3, i32>
 fn subgroupBroadcast_e275c8() -> vec3<i32>{
   var res: vec3<i32> = subgroupBroadcast(vec3<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_e275c8();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl
index c118176..97f0291 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 subgroupBroadcast_e275c8() {
   int3 res = WaveReadLaneAt((1).xxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store3(0u, asuint(subgroupBroadcast_e275c8()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.wgsl
index e823e9a..0128689 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/e275c8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn subgroupBroadcast_e275c8() -> vec3<i32> {
   var res : vec3<i32> = subgroupBroadcast(vec3<i32>(1i), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_e275c8();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl
index 56bb0fc..a88c568 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn subgroupBroadcast(value: vec<4, i32>, @const sourceLaneIndex: u32) -> vec<4, i32>
 fn subgroupBroadcast_f637f9() -> vec4<i32>{
   var res: vec4<i32> = subgroupBroadcast(vec4<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_f637f9();
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl
index bd7c850..4118129 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 subgroupBroadcast_f637f9() {
   int4 res = WaveReadLaneAt((1).xxxx, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBroadcast_f637f9()));
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.wgsl
index ae0aa5c..a2bded1 100644
--- a/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/f637f9.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn subgroupBroadcast_f637f9() -> vec4<i32> {
   var res : vec4<i32> = subgroupBroadcast(vec4<i32>(1i), 1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_f637f9();
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl
index 88bffd0..7a1745b 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn tan(vec<4, f32>) -> vec<4, f32>
 fn tan_244e2a() -> vec4<f32>{
   var res: vec4<f32> = tan(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_244e2a();
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl
index e3ecebf..63e556c 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tan_244e2a() {
   float4 res = (1.55740773677825927734f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tan_244e2a()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl
index e3ecebf..63e556c 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tan_244e2a() {
   float4 res = (1.55740773677825927734f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tan_244e2a()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl
index ff60704..eb8e9f7 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tan_244e2a() {
   vec4 res = vec4(1.55740773677825927734f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tan_244e2a() {
   vec4 res = vec4(1.55740773677825927734f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.wgsl
index 7867f92..61f8da9 100644
--- a/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/244e2a.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn tan_244e2a() -> vec4<f32> {
   var res : vec4<f32> = tan(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_244e2a();
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl
index 4943953..5eb4467 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn tan(f32) -> f32
 fn tan_2f030e() -> f32{
   var res: f32 = tan(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_2f030e();
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl
index e0eae3f..1b60d2b 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tan_2f030e() {
   float res = 1.55740773677825927734f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tan_2f030e()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl
index e0eae3f..1b60d2b 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tan_2f030e() {
   float res = 1.55740773677825927734f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tan_2f030e()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl
index 701a72f..2478b4c 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tan_2f030e() {
   float res = 1.55740773677825927734f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tan_2f030e() {
   float res = 1.55740773677825927734f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.wgsl
index f86cc08..e9094a9 100644
--- a/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/2f030e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn tan_2f030e() -> f32 {
   var res : f32 = tan(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_2f030e();
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl
index 6671ad1..8d648ea 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn tan(vec<4, f16>) -> vec<4, f16>
 fn tan_539e54() -> vec4<f16>{
   var res: vec4<f16> = tan(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_539e54();
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.dxc.hlsl
index 4585968..d5b1a9b 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> tan_539e54() {
   vector<float16_t, 4> res = (float16_t(1.556640625h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
   return;
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.glsl
index 85bb94c..6add327 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tan_539e54() {
   f16vec4 res = f16vec4(1.556640625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tan_539e54() {
   f16vec4 res = f16vec4(1.556640625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.wgsl
index 1712c5a..31cc30f 100644
--- a/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/539e54.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn tan_539e54() -> vec4<f16> {
   var res : vec4<f16> = tan(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_539e54();
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl
index 5fec837..cfde982 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn tan(vec<3, f32>) -> vec<3, f32>
 fn tan_7ea104() -> vec3<f32>{
   var res: vec3<f32> = tan(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_7ea104();
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl
index 8b07eef..b068081 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tan_7ea104() {
   float3 res = (1.55740773677825927734f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tan_7ea104()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl
index 8b07eef..b068081 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tan_7ea104() {
   float3 res = (1.55740773677825927734f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tan_7ea104()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl
index 37d6bd6..94d3a7a 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 tan_7ea104() {
-  vec3 res = vec3(1.55740773677825927734f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 tan_7ea104() {
+  vec3 res = vec3(1.55740773677825927734f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 tan_7ea104() {
-  vec3 res = vec3(1.55740773677825927734f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 tan_7ea104() {
+  vec3 res = vec3(1.55740773677825927734f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.wgsl
index 81c83c6..d5bb126 100644
--- a/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/7ea104.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn tan_7ea104() -> vec3<f32> {
   var res : vec3<f32> = tan(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_7ea104();
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl
index 3ba553a..acc67bc 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn tan(vec<2, f32>) -> vec<2, f32>
 fn tan_8ce3e9() -> vec2<f32>{
   var res: vec2<f32> = tan(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_8ce3e9();
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl
index 4116cbb..07e357e 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tan_8ce3e9() {
   float2 res = (1.55740773677825927734f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl
index 4116cbb..07e357e 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tan_8ce3e9() {
   float2 res = (1.55740773677825927734f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl
index 156c193..6e5c690 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tan_8ce3e9() {
   vec2 res = vec2(1.55740773677825927734f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tan_8ce3e9() {
   vec2 res = vec2(1.55740773677825927734f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.wgsl
index aa38a3f..21a2fda 100644
--- a/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/8ce3e9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn tan_8ce3e9() -> vec2<f32> {
   var res : vec2<f32> = tan(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_8ce3e9();
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl
index 0192f30..f1ba750 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn tan(vec<2, f16>) -> vec<2, f16>
 fn tan_9f7c9c() -> vec2<f16>{
   var res: vec2<f16> = tan(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_9f7c9c();
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.dxc.hlsl
index 78e7cb7..f6dccb4 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> tan_9f7c9c() {
   vector<float16_t, 2> res = (float16_t(1.556640625h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
   return;
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.glsl
index f850539..1b22dba 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tan_9f7c9c() {
   f16vec2 res = f16vec2(1.556640625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tan_9f7c9c() {
   f16vec2 res = f16vec2(1.556640625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.wgsl
index 88eef24..f8e272d 100644
--- a/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/9f7c9c.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn tan_9f7c9c() -> vec2<f16> {
   var res : vec2<f16> = tan(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_9f7c9c();
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl
index 0376139..1a03004 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn tan(f16) -> f16
 fn tan_d4d491() -> f16{
   var res: f16 = tan(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_d4d491();
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.dxc.hlsl
index 95dd6e6..7eac52b 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t tan_d4d491() {
   float16_t res = float16_t(1.556640625h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, tan_d4d491());
   return;
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.glsl
index 835fa92..9b2f3a4 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tan_d4d491() {
   float16_t res = 1.556640625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tan_d4d491() {
   float16_t res = 1.556640625hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.wgsl
index 8ea1287..42bc185 100644
--- a/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/d4d491.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn tan_d4d491() -> f16 {
   var res : f16 = tan(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_d4d491();
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl
index 18ede8d..00c7412 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn tan(vec<3, f16>) -> vec<3, f16>
 fn tan_db0456() -> vec3<f16>{
   var res: vec3<f16> = tan(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_db0456();
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.dxc.hlsl
index af84593..4c6aefc 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> tan_db0456() {
   vector<float16_t, 3> res = (float16_t(1.556640625h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
   return;
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.glsl
index c3cf459..49e130f 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tan_db0456() {
   f16vec3 res = f16vec3(1.556640625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tan_db0456() {
   f16vec3 res = f16vec3(1.556640625hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.wgsl
index 2fa3b70..62aeaf8 100644
--- a/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tan/db0456.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn tan_db0456() -> vec3<f16> {
   var res : vec3<f16> = tan(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_db0456();
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl
index 7e52b1d..c057e20 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn tanh(vec<3, f16>) -> vec<3, f16>
 fn tanh_06a4fe() -> vec3<f16>{
   var res: vec3<f16> = tanh(vec3<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_06a4fe();
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl
index 0524f04..c717dce 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> tanh_06a4fe() {
   vector<float16_t, 3> res = (float16_t(0.76123046875h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl
index 233203b..73234f2 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tanh_06a4fe() {
   f16vec3 res = f16vec3(0.76123046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tanh_06a4fe() {
   f16vec3 res = f16vec3(0.76123046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.wgsl
index b93b265..70e3130 100644
--- a/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/06a4fe.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn tanh_06a4fe() -> vec3<f16> {
   var res : vec3<f16> = tanh(vec3<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_06a4fe();
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl
index 925bade..8c751c8 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn tanh(vec<4, f32>) -> vec<4, f32>
 fn tanh_5663c5() -> vec4<f32>{
   var res: vec4<f32> = tanh(vec4<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5663c5();
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl
index 8b95670..e2d048b 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tanh_5663c5() {
   float4 res = (0.76159417629241943359f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tanh_5663c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl
index 8b95670..e2d048b 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tanh_5663c5() {
   float4 res = (0.76159417629241943359f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tanh_5663c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl
index 7d7a788..4e3178b 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tanh_5663c5() {
   vec4 res = vec4(0.76159417629241943359f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tanh_5663c5() {
   vec4 res = vec4(0.76159417629241943359f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.wgsl
index 85b52e0..4a8c4c4 100644
--- a/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/5663c5.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn tanh_5663c5() -> vec4<f32> {
   var res : vec4<f32> = tanh(vec4<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5663c5();
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl
index dd1c872..3a10d5b 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn tanh(vec<2, f32>) -> vec<2, f32>
 fn tanh_5724b3() -> vec2<f32>{
   var res: vec2<f32> = tanh(vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5724b3();
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl
index 76e696f..4b52e4f 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tanh_5724b3() {
   float2 res = (0.76159417629241943359f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tanh_5724b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl
index 76e696f..4b52e4f 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tanh_5724b3() {
   float2 res = (0.76159417629241943359f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tanh_5724b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl
index 76bebef..bf2af8c 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tanh_5724b3() {
   vec2 res = vec2(0.76159417629241943359f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tanh_5724b3() {
   vec2 res = vec2(0.76159417629241943359f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.wgsl
index 6105338..bdf72fb 100644
--- a/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/5724b3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn tanh_5724b3() -> vec2<f32> {
   var res : vec2<f32> = tanh(vec2<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5724b3();
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl
index 7b21453..14d1f4f 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn tanh(f16) -> f16
 fn tanh_5b19af() -> f16{
   var res: f16 = tanh(1.h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5b19af();
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl
index dfc8d1c..2093bec 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t tanh_5b19af() {
   float16_t res = float16_t(0.76123046875h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, tanh_5b19af());
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl
index 8ec0da4..c54fc50 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tanh_5b19af() {
   float16_t res = 0.76123046875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tanh_5b19af() {
   float16_t res = 0.76123046875hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.wgsl
index ed010cb..c8abb27 100644
--- a/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/5b19af.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn tanh_5b19af() -> f16 {
   var res : f16 = tanh(1.0h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5b19af();
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl
index abcfc11..417a99e 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn tanh(vec<2, f16>) -> vec<2, f16>
 fn tanh_6d105a() -> vec2<f16>{
   var res: vec2<f16> = tanh(vec2<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_6d105a();
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl
index 84c0fac..355961b 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> tanh_6d105a() {
   vector<float16_t, 2> res = (float16_t(0.76123046875h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl
index 908f640..711577a 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tanh_6d105a() {
   f16vec2 res = f16vec2(0.76123046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tanh_6d105a() {
   f16vec2 res = f16vec2(0.76123046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.wgsl
index 8ff3188..66db110 100644
--- a/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/6d105a.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn tanh_6d105a() -> vec2<f16> {
   var res : vec2<f16> = tanh(vec2<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_6d105a();
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl
index 49301e0..df6a258 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn tanh(vec<3, f32>) -> vec<3, f32>
 fn tanh_9f9fb9() -> vec3<f32>{
   var res: vec3<f32> = tanh(vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_9f9fb9();
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl
index e07dab7..a4d5f5b 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tanh_9f9fb9() {
   float3 res = (0.76159417629241943359f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl
index e07dab7..a4d5f5b 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tanh_9f9fb9() {
   float3 res = (0.76159417629241943359f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl
index 71fb928..1390f34 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 tanh_9f9fb9() {
-  vec3 res = vec3(0.76159417629241943359f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 tanh_9f9fb9() {
+  vec3 res = vec3(0.76159417629241943359f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 tanh_9f9fb9() {
-  vec3 res = vec3(0.76159417629241943359f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 tanh_9f9fb9() {
+  vec3 res = vec3(0.76159417629241943359f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.wgsl
index d97f657..e1ab2bc 100644
--- a/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/9f9fb9.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn tanh_9f9fb9() -> vec3<f32> {
   var res : vec3<f32> = tanh(vec3<f32>(1.0f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_9f9fb9();
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl
index a7cab84..39c19ec 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn tanh(f32) -> f32
 fn tanh_c15fdb() -> f32{
   var res: f32 = tanh(1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_c15fdb();
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl
index 34c40f8..b3aa25d 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tanh_c15fdb() {
   float res = 0.76159417629241943359f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tanh_c15fdb()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl
index 34c40f8..b3aa25d 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tanh_c15fdb() {
   float res = 0.76159417629241943359f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tanh_c15fdb()));
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl
index e2aa98e..1a32989 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tanh_c15fdb() {
   float res = 0.76159417629241943359f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tanh_c15fdb() {
   float res = 0.76159417629241943359f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.wgsl
index 71a0c95..2255350 100644
--- a/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/c15fdb.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn tanh_c15fdb() -> f32 {
   var res : f32 = tanh(1.0f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_c15fdb();
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl
index 289ad07..5d3f1bb 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn tanh(vec<4, f16>) -> vec<4, f16>
 fn tanh_e8efb3() -> vec4<f16>{
   var res: vec4<f16> = tanh(vec4<f16>(1.h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_e8efb3();
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl
index 80086e1..d5d764f 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> tanh_e8efb3() {
   vector<float16_t, 4> res = (float16_t(0.76123046875h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
   return;
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl
index 55cc6ca..ed3664b 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tanh_e8efb3() {
   f16vec4 res = f16vec4(0.76123046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tanh_e8efb3() {
   f16vec4 res = f16vec4(0.76123046875hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.wgsl
index cfc99c6..06729db 100644
--- a/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/tanh/e8efb3.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn tanh_e8efb3() -> vec4<f16> {
   var res : vec4<f16> = tanh(vec4<f16>(1.0h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_e8efb3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl
index e22ab39..f443996 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r8unorm, read>) -> vec3<u32>
@@ -43,8 +46,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00229f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.dxc.hlsl
index 492cc11..644a362 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_00229f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_00229f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.fxc.hlsl
index 492cc11..644a362 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_00229f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_00229f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.spvasm
index d865f9f..84bd672 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_00229f "textureDimensions_00229f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_00229f = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.wgsl
index da76e54..37631c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00229f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read>;
 
 fn textureDimensions_00229f() -> vec3<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00229f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl
index d96b636..f56c42c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureDimensions(texture: texture_multisampled_2d<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00348c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl
index 15206a2..90896c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_00348c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_00348c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl
index 15206a2..90896c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_00348c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_00348c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.glsl
index d3f95f7..6d61ce1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 uvec2 textureDimensions_00348c() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 uvec2 textureDimensions_00348c() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.spvasm
index 515bfbe..2c9c732 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_00348c "textureDimensions_00348c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_00348c = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.wgsl
index 6375abb..efef73e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/00348c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureDimensions_00348c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00348c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl
index 4e4e26d..a8d066f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01e21e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.dxc.hlsl
index fdae3af..8d5499d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01e21e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01e21e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.fxc.hlsl
index fdae3af..8d5499d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01e21e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01e21e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.spvasm
index 0cd6f97..0405968 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_01e21e "textureDimensions_01e21e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_01e21e = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.wgsl
index edd5ec9..ec8c0c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01e21e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
 
 fn textureDimensions_01e21e() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01e21e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl
index 10bd349..e201cbe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01edb1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.dxc.hlsl
index 4881e2c..475a14b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01edb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01edb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.fxc.hlsl
index 4881e2c..475a14b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01edb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01edb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.glsl
index 2662bf2..67b2948 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_01edb1() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_01edb1() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.spvasm
index d63ac24..895d69d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_01edb1 "textureDimensions_01edb1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_01edb1 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.wgsl
index 1e4c90c..28754f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/01edb1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
 
 fn textureDimensions_01edb1() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01edb1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl
index 16ad4d0..ba9192c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureDimensions(texture: texture_1d<i32>, level: u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_022903();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl
index 4ef55315a..cddbfd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_022903() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_022903()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl
index 4ef55315a..cddbfd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_022903() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_022903()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.glsl
index feaf262..8f9bf1d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_022903() {
   uint res = uvec2(textureSize(arg_0_1, int(1u))).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_022903() {
   uint res = uvec2(textureSize(arg_0_1, int(1u))).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.spvasm
index 7b55900..6f67b16 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_022903 "textureDimensions_022903"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureDimensions_022903 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.wgsl
index acae9a1..5732cdf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/022903.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureDimensions_022903() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_022903();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl
index 38b928d..3de4645 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0276ec();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.dxc.hlsl
index c0c408a..902343d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0276ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0276ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.fxc.hlsl
index c0c408a..902343d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0276ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0276ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.glsl
index a98be2c..287bdd4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_0276ec() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_0276ec() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.spvasm
index 5edc249..42f6e77 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0276ec "textureDimensions_0276ec"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_0276ec = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.wgsl
index 54a716f..55b1386 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0276ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
 
 fn textureDimensions_0276ec() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0276ec();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl
index b216927..d9d59b4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_029589();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.dxc.hlsl
index 56af906..9e6c382 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_029589() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_029589()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.fxc.hlsl
index 56af906..9e6c382 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_029589() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_029589()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.spvasm
index abdc244..41d162c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_029589 "textureDimensions_029589"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_029589 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.wgsl
index 8eb21b8..599c1f0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/029589.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureDimensions_029589() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_029589();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl
index 0ac27d6..efb1d0c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0329b0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.dxc.hlsl
index f18e490..e0e8cc2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_0329b0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0329b0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.fxc.hlsl
index f18e490..e0e8cc2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_0329b0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0329b0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl
index 62f1a63..73623c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.spvasm
index 354158c..770ecd7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0329b0 "textureDimensions_0329b0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_0329b0 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.wgsl
index c0df005..2440084 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0329b0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read>;
 
 fn textureDimensions_0329b0() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0329b0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl
index 72f716d..37bc6a8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033195();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.dxc.hlsl
index 6112cb2..71222fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_033195() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033195()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.fxc.hlsl
index 6112cb2..71222fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_033195() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033195()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.glsl
index 2169da3..5360a22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_033195() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_033195() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.spvasm
index cc2dd95..0b6e256 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_033195 "textureDimensions_033195"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_033195 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.wgsl
index 4a5a263..9b676a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033195.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
 
 fn textureDimensions_033195() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033195();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl
index b2a0efd..dfd3826 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033ea7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.dxc.hlsl
index 41bc76b..e9a24ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_033ea7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033ea7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.fxc.hlsl
index 41bc76b..e9a24ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_033ea7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033ea7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl
index 281f13fc..2600e68 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.spvasm
index 8ad547c..ed324aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_033ea7 "textureDimensions_033ea7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_033ea7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.wgsl
index 6f9b649..98ef90d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/033ea7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read>;
 
 fn textureDimensions_033ea7() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033ea7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl
index 830c590..de45e3e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_038847();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.dxc.hlsl
index bcd9624..9f064f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_038847() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_038847()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.fxc.hlsl
index bcd9624..9f064f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_038847() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_038847()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.glsl
index df78138..bad818c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_038847() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_038847() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.spvasm
index 5cfb77b..71ba190 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_038847 "textureDimensions_038847"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_038847 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.wgsl
index f26a5dc..4adda73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/038847.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
 
 fn textureDimensions_038847() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_038847();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl
index 464f22a..f1d3ef1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8snorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_03f81e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.dxc.hlsl
index 57eca16..9dbcf74 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_03f81e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_03f81e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.fxc.hlsl
index 57eca16..9dbcf74 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_03f81e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_03f81e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.glsl
index a0b9769..ba0da93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_03f81e() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_03f81e() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.spvasm
index 4d494e2..d873945 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_03f81e "textureDimensions_03f81e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_03f81e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.wgsl
index cc0a946..a5f1a80 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/03f81e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
 
 fn textureDimensions_03f81e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_03f81e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl
index 2432731..8a13063 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_07f1ba();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl
index b6aa069..2705bf8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_07f1ba() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_07f1ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl
index b6aa069..2705bf8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_07f1ba() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_07f1ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl
index aa719e8..2084b42 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.spvasm
index 2d41a9a..80ab8b8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_07f1ba "textureDimensions_07f1ba"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_07f1ba = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.wgsl
index 5a6396f..c74d9e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/07f1ba.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read>;
 
 fn textureDimensions_07f1ba() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_07f1ba();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl
index f71c2d7..5182428 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_088918();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.dxc.hlsl
index 652b912..f00ca24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_088918() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_088918()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.fxc.hlsl
index 652b912..f00ca24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_088918() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_088918()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl
index 3668eb6..10fc274 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.spvasm
index 81ccf40..09326f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_088918 "textureDimensions_088918"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_088918 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.wgsl
index d998ab3..23acf71 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/088918.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read>;
 
 fn textureDimensions_088918() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_088918();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl
index 510aa05..1c060ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureDimensions(texture: texture_3d<f32>, level: u32) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0890c6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
index a5d5f17..bd21751 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_0890c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0890c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
index a5d5f17..bd21751 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_0890c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0890c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.glsl
index a72fede..a1f630f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_0890c6() {
   uvec3 res = uvec3(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_0890c6() {
   uvec3 res = uvec3(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.spvasm
index 028e3e4..c0f556d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0890c6 "textureDimensions_0890c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
@@ -75,7 +75,7 @@
 %textureDimensions_0890c6 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.wgsl
index 5ac4750..7c2d765 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0890c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureDimensions_0890c6() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0890c6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl
index 2066fe0..d46661b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_08e371();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.dxc.hlsl
index 703f0d6..8fcddc9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_08e371() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_08e371()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.fxc.hlsl
index 703f0d6..8fcddc9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_08e371() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_08e371()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.spvasm
index 52ff49f..0b9e60e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_08e371 "textureDimensions_08e371"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_08e371 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.wgsl
index 82497f4..59e363c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/08e371.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read>;
 
 fn textureDimensions_08e371() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_08e371();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl
index 78e5185..d678d82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_09140b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl
index 6fdea37..653774f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_09140b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_09140b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl
index 6fdea37..653774f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_09140b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_09140b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl
index 8e15e69..b6b76b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.spvasm
index 79b4996..644e703 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_09140b "textureDimensions_09140b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_09140b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.wgsl
index 42f4919..341f411 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/09140b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, write>;
 
 fn textureDimensions_09140b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_09140b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl
index 0b2ded0..d787d88 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0973c9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.dxc.hlsl
index 83d668e..6db447b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0973c9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0973c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.fxc.hlsl
index 83d668e..6db447b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0973c9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0973c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.glsl
index 8f45b27..f84f944 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_0973c9() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_0973c9() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.spvasm
index a363b39..bb964a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0973c9 "textureDimensions_0973c9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_0973c9 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.wgsl
index 4c30e2a..05f423d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0973c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
 
 fn textureDimensions_0973c9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0973c9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl
index e032f58..4135205 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0baa0d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
index a8b3209..7734ca3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0baa0d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0baa0d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
index a8b3209..7734ca3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0baa0d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0baa0d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl
index 089b7ff..f6d78e0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.spvasm
index 4598beb..235aabf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0baa0d "textureDimensions_0baa0d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_0baa0d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.wgsl
index fd39459..63ac00c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0baa0d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, write>;
 
 fn textureDimensions_0baa0d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0baa0d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl
index ce541f3..2e56285 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0c0b0c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
index e050ec6..0b71369 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_0c0b0c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0c0b0c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
index e050ec6..0b71369 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_0c0b0c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0c0b0c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl
index cb90f2a..f2c436f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.spvasm
index 30f4862..24ae84c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0c0b0c "textureDimensions_0c0b0c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_0c0b0c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.wgsl
index 2d464fe..a1b7b3e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0c0b0c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, write>;
 
 fn textureDimensions_0c0b0c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0c0b0c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl
index d8a37bf..7b58caf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0d4a7c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl
index 2731228..f2ea7ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0d4a7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0d4a7c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl
index 2731228..f2ea7ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0d4a7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0d4a7c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl
index d835f56..bffed31 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.spvasm
index d92dcbe..d295b9e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0d4a7c "textureDimensions_0d4a7c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_0d4a7c = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.wgsl
index 3356f21..8521e14 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0d4a7c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read>;
 
 fn textureDimensions_0d4a7c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0d4a7c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl
index 84f1f0a..85f2b55 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8unorm, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0de70c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.dxc.hlsl
index 4f17617..42fcef5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0de70c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0de70c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.fxc.hlsl
index 4f17617..42fcef5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0de70c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0de70c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.glsl
index 400252c..0e8b3ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_0de70c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_0de70c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.spvasm
index bf0f402..0ea8983 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0de70c "textureDimensions_0de70c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_0de70c = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.wgsl
index 38177ff..131b77a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0de70c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
 
 fn textureDimensions_0de70c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0de70c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl
index 5d4947c..c6c080e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0ff9a4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
index 5c923e3..0e05f585 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0ff9a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0ff9a4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
index 5c923e3..0e05f585 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0ff9a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0ff9a4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.spvasm
index 4827dfa2..5aea272 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0ff9a4 "textureDimensions_0ff9a4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_0ff9a4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.wgsl
index d968b17..93d20b4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/0ff9a4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureDimensions_0ff9a4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0ff9a4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl
index 8c6f1dab..b7ef42f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_135176();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.dxc.hlsl
index 52ab676..f3ba8cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_135176() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_135176()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.fxc.hlsl
index 52ab676..f3ba8cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_135176() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_135176()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl
index 9a0c5dc..dbe7545 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.spvasm
index 76ae818..f8e5ebb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_135176 "textureDimensions_135176"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_135176 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.wgsl
index 32edd3d..16be082 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/135176.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureDimensions_135176() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_135176();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl
index 4de1133..2d81a57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureDimensions(texture: texture_2d<f32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_13f8db();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
index 5303abf..ff03610 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_13f8db() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_13f8db()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
index 5303abf..ff03610 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_13f8db() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_13f8db()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.glsl
index 4f5a97a..119538a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_13f8db() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_13f8db() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.spvasm
index 145128d..8b7d3de 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_13f8db "textureDimensions_13f8db"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -75,7 +75,7 @@
 %textureDimensions_13f8db = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.wgsl
index 0d2451b..9af5350 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/13f8db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureDimensions_13f8db() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_13f8db();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl
index e6c5842..68bd04d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1417dd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
index ab8eb1b..fadca5b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1417dd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1417dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
index ab8eb1b..fadca5b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1417dd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1417dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl
index 8add6b7..1284783 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.spvasm
index 43924f6..3e2352b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1417dd "textureDimensions_1417dd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_1417dd = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.wgsl
index d928894..6e09bb1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1417dd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, write>;
 
 fn textureDimensions_1417dd() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1417dd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl
index 05f0cda..ac6d4af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15aa17();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
index 12b2b97..3165963 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_15aa17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_15aa17()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
index 12b2b97..3165963 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_15aa17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_15aa17()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl
index e656722..1c45a8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.spvasm
index 619a299..71588bc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_15aa17 "textureDimensions_15aa17"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_15aa17 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.wgsl
index e521c6e..ee44c28 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15aa17.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, write>;
 
 fn textureDimensions_15aa17() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15aa17();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl
index feb2dfd..deeec9b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureDimensions(texture: texture_2d<u32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15b577();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl
index e993ea8..6594b4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_15b577() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_15b577()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl
index e993ea8..6594b4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_15b577() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_15b577()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.glsl
index c62b91b..4941623 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_15b577() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_15b577() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.spvasm
index fda86e9..ba4328a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_15b577 "textureDimensions_15b577"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_15b577 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.wgsl
index 870b0bc..5d662fa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/15b577.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureDimensions_15b577() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15b577();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl
index 38aa6d5..2bdbb12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r8unorm, read_write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18160d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.dxc.hlsl
index 0a9df44..4da4281 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18160d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18160d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.fxc.hlsl
index 0a9df44..4da4281 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18160d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18160d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.spvasm
index 536ebfd..328986a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_18160d "textureDimensions_18160d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_18160d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.wgsl
index 7596745..229cd99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18160d.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read_write>;
 
 fn textureDimensions_18160d() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18160d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl
index 813f3c9..66a0202 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r8unorm, write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18f19f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.dxc.hlsl
index e7f8023..cdf2197 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18f19f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18f19f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.fxc.hlsl
index e7f8023..cdf2197 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18f19f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18f19f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.spvasm
index a127b9b..5562016 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_18f19f "textureDimensions_18f19f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_18f19f = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.wgsl
index 2b185cc..14609f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/18f19f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, write>;
 
 fn textureDimensions_18f19f() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18f19f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl
index 013e658..94947e9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureDimensions(texture: texture_3d<i32>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1a2be7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
index 6f36e09..cdc373b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1a2be7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1a2be7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
index 6f36e09..cdc373b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1a2be7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1a2be7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.glsl
index 61107b4..ce5be69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_1a2be7() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_1a2be7() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.spvasm
index 8cdeb42..49dce38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1a2be7 "textureDimensions_1a2be7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
@@ -77,7 +77,7 @@
 %textureDimensions_1a2be7 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %25 %int_0
                OpStore %res %24
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.wgsl
index 67664ad..35d0e9b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1a2be7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureDimensions_1a2be7() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1a2be7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl
index 354d822..ba2e18d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1b720f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.dxc.hlsl
index 917df17..ea7f543 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1b720f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1b720f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.fxc.hlsl
index 917df17..ea7f543 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1b720f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1b720f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl
index 440ac56..d4f701c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.spvasm
index 042a20f..7fa8a81 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1b720f "textureDimensions_1b720f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_1b720f = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.wgsl
index fbf9dca..8ab53f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1b720f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read>;
 
 fn textureDimensions_1b720f() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1b720f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl
index 8226275..5aa5809 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureDimensions(texture: texture_3d<f32>, level: i32) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bc428();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
index 210bbc8..a3539a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1bc428() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1bc428()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
index 210bbc8..a3539a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1bc428() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1bc428()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.glsl
index 5b4d8a8..b75f089 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_1bc428() {
   uvec3 res = uvec3(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_1bc428() {
   uvec3 res = uvec3(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.spvasm
index 03c63c5..42dcc91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1bc428 "textureDimensions_1bc428"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_1bc428 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.wgsl
index 609c573..ff75c7b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bc428.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureDimensions_1bc428() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bc428();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl
index 419ee89..27f3260 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureDimensions(texture: texture_2d<f32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bd78c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
index 67484c0..04eef35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_1bd78c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1bd78c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
index 67484c0..04eef35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_1bd78c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1bd78c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.glsl
index 463a8b7..d13e2a3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_1bd78c() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_1bd78c() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.spvasm
index b94841f..948dfdc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1bd78c "textureDimensions_1bd78c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_1bd78c = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.wgsl
index 28dc351..6558810 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1bd78c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureDimensions_1bd78c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bd78c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl
index e20c58e..bbc648e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1e4024();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.dxc.hlsl
index 6a0932b..bc0ec19 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1e4024() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1e4024()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.fxc.hlsl
index 6a0932b..bc0ec19 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1e4024() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1e4024()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl
index 1b2ba21..bb31bce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.spvasm
index 575e50b..66d0a3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1e4024 "textureDimensions_1e4024"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_1e4024 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.wgsl
index adbbeb7..117f71c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/1e4024.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
 
 fn textureDimensions_1e4024() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1e4024();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl
index 441701f..7995be9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20eaad();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.dxc.hlsl
index fa5d0b5..65ffcf2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_20eaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_20eaad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.fxc.hlsl
index fa5d0b5..65ffcf2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_20eaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_20eaad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.glsl
index ca1be41..6ce06e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_20eaad() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_20eaad() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.spvasm
index e4c859d..46f98a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_20eaad "textureDimensions_20eaad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_20eaad = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.wgsl
index 93ba5d4..2e2eacc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20eaad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
 
 fn textureDimensions_20eaad() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20eaad();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl
index 3c53f56..090944f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20ecef();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.dxc.hlsl
index 31ab61ff..91cce4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_20ecef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_20ecef()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.fxc.hlsl
index 31ab61ff..91cce4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_20ecef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_20ecef()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl
index defb923..e14dd1e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.spvasm
index aa54204f..d940b37 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_20ecef "textureDimensions_20ecef"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_20ecef = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.wgsl
index 0ec695a..35bc50e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/20ecef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
 
 fn textureDimensions_20ecef() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20ecef();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl
index 79664f4..04ff6b8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_212362();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.dxc.hlsl
index cdb9781..cef55fa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_212362() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_212362()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.fxc.hlsl
index cdb9781..cef55fa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_212362() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_212362()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl
index 22e4949..d2f1c21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.spvasm
index e3cf4ec..321b23e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_212362 "textureDimensions_212362"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_212362 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.wgsl
index a2490f0..04cedde 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/212362.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read>;
 
 fn textureDimensions_212362() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_212362();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl
index 037079a..5e05397 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_224113();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl
index a05aa54..87c11ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_224113() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_224113()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl
index a05aa54..87c11ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_224113() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_224113()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl
index 9c589a0..5bb2ef5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.spvasm
index 1a50806..300c1b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_224113 "textureDimensions_224113"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_224113 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.wgsl
index 9cb616d..b56ac22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/224113.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, write>;
 
 fn textureDimensions_224113() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_224113();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl
index 2b652d1..4bd2dd6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureDimensions(texture: texture_cube_array<u32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_22b5b6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
index a2be73e..682140f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_22b5b6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_22b5b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
index a2be73e..682140f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_22b5b6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_22b5b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.spvasm
index f98bcaf..08abc51 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_22b5b6 "textureDimensions_22b5b6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_22b5b6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.wgsl
index 6de4885..82adcf4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/22b5b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureDimensions_22b5b6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_22b5b6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl
index 969474c..4a7c488 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureDimensions(texture: texture_2d<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_24db07();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl
index 78831a5..07dc0ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_24db07() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_24db07()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl
index 78831a5..07dc0ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_24db07() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_24db07()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.glsl
index ded9ae2..a56223a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_24db07() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_24db07() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.spvasm
index 718bfa1..cd02a4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_24db07 "textureDimensions_24db07"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_24db07 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.wgsl
index 8407ee7..b547ba9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/24db07.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureDimensions_24db07() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_24db07();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl
index 7cb5fca..d6c9fa6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r8unorm, write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_25d284();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.dxc.hlsl
index 954b7a3d..e68cc9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_25d284() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_25d284()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.fxc.hlsl
index 954b7a3d..e68cc9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_25d284() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_25d284()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.spvasm
index 7a73f44..d23af7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_25d284 "textureDimensions_25d284"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_25d284 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.wgsl
index d2a1b6d..f812b4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/25d284.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, write>;
 
 fn textureDimensions_25d284() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_25d284();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl
index 157bccb..dc40194 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2674d8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
index 9daf4d5..36b6a92 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2674d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2674d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
index 9daf4d5..36b6a92 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2674d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2674d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.spvasm
index b87d206..d39b586 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2674d8 "textureDimensions_2674d8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_2674d8 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.wgsl
index 05f137c..e628b0d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2674d8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureDimensions_2674d8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2674d8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl
index 6112dea..2d21a48 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_268ddb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.dxc.hlsl
index fa006c0..b31cdb4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_268ddb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_268ddb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.fxc.hlsl
index fa006c0..b31cdb4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_268ddb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_268ddb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl
index 47f3658..26d59a5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.spvasm
index 1d902ee..9f314f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_268ddb "textureDimensions_268ddb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_268ddb = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.wgsl
index 17b6461..c161d00 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/268ddb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read>;
 
 fn textureDimensions_268ddb() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_268ddb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl
index a1a0981..25d9373 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureDimensions(texture: texture_1d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_26d6bf();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
index d48a53a..d115a3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_26d6bf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_26d6bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
index d48a53a..d115a3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_26d6bf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_26d6bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.glsl
index 91b8c22..eac6779 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_26d6bf() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_26d6bf() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.spvasm
index 012cb47..bcd7846 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_26d6bf "textureDimensions_26d6bf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_26d6bf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %int_0
                OpStore %res %22
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.wgsl
index 4ae7859..d4a5476 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/26d6bf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureDimensions_26d6bf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_26d6bf();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl
index 996e688..67dde12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r8unorm, read_write>) -> vec3<u32>
@@ -43,8 +46,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_282978();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.dxc.hlsl
index 84e64eb..3d2c089 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_282978() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_282978()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.fxc.hlsl
index 84e64eb..3d2c089 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_282978() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_282978()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.spvasm
index a8f745d..5325433 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_282978 "textureDimensions_282978"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_282978 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.wgsl
index 50f400e..bf369e9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/282978.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read_write>;
 
 fn textureDimensions_282978() -> vec3<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_282978();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl
index 3202895..9fe0650 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_283b58();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.dxc.hlsl
index ce27940..f5c9b3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_283b58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_283b58()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.fxc.hlsl
index ce27940..f5c9b3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_283b58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_283b58()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.glsl
index 4f7eb25..751160a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_283b58() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_283b58() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.spvasm
index 15cfe30..45758f5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_283b58 "textureDimensions_283b58"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_283b58 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.wgsl
index f06a83a..095aa80 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/283b58.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
 
 fn textureDimensions_283b58() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_283b58();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl
index 3fcd9ed..9e09d21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_284c27();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.dxc.hlsl
index 31e71b3..e81c788 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_284c27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_284c27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.fxc.hlsl
index 31e71b3..e81c788 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_284c27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_284c27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.spvasm
index 57622f1..3c8b4e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_284c27 "textureDimensions_284c27"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_284c27 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.wgsl
index d4b5edb..2046902 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/284c27.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read>;
 
 fn textureDimensions_284c27() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_284c27();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl
index 29dc5d0..56c24e0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2a58b7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl
index b49bb21..72e388a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2a58b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2a58b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl
index b49bb21..72e388a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2a58b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2a58b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.glsl
index 0f86d67..b707e3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_2a58b7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_2a58b7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.spvasm
index 60d7087..06b5860 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2a58b7 "textureDimensions_2a58b7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_2a58b7 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.wgsl
index 2fd5e75..e003c9a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2a58b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureDimensions_2a58b7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2a58b7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl
index d88bea3..5c91115 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<bgra8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2bafdf();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl
index eda2b73..f0b9f24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2bafdf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2bafdf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl
index eda2b73..f0b9f24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2bafdf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2bafdf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl
index de5fe89..8444594 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.spvasm
index 11028ca..127113d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2bafdf "textureDimensions_2bafdf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_2bafdf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.wgsl
index 4054603..b779b21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2bafdf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read>;
 
 fn textureDimensions_2bafdf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2bafdf();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl
index 67d6a5e..90a2aba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2dc5c5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl
index 18f3768..a0802c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2dc5c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2dc5c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl
index 18f3768..a0802c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2dc5c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2dc5c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl
index 5ddc117..e296601 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.spvasm
index a49cca6..5ade20c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2dc5c5 "textureDimensions_2dc5c5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_2dc5c5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.wgsl
index d652a63..f85fc0e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2dc5c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read>;
 
 fn textureDimensions_2dc5c5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2dc5c5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl
index b10b341..3346539 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureDimensions(texture: texture_2d<i32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2e443d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
index 4b3261f..95c99c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2e443d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2e443d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
index 4b3261f..95c99c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2e443d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2e443d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.glsl
index cc86618..e596f68 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_2e443d() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_2e443d() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.spvasm
index 04703b5..eaba98b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2e443d "textureDimensions_2e443d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_2e443d = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %int_1
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.wgsl
index 7e2bdda..2b99d9c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2e443d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureDimensions_2e443d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2e443d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl
index 8d27d24..dde2452 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureDimensions(texture: texture_2d_array<f32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2fd2a4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
index 9eb07e3..326bb77 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2fd2a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2fd2a4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
index 9eb07e3..326bb77 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2fd2a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2fd2a4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.glsl
index 6ff8e59..114099c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_2fd2a4() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_2fd2a4() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.spvasm
index 0ba5bf2..1251732 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2fd2a4 "textureDimensions_2fd2a4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_2fd2a4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.wgsl
index 9830ea5..b7cdc8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2fd2a4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureDimensions_2fd2a4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2fd2a4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl
index 0335ceb..22c5476 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2ff32a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl
index 7db40a9..c797222 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_2ff32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_2ff32a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl
index 7db40a9..c797222 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_2ff32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_2ff32a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl
index 48728a3..aa09174 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.spvasm
index 79dab7e..4408ff4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2ff32a "textureDimensions_2ff32a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_2ff32a = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.wgsl
index 61a3c82..75b04d3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/2ff32a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read>;
 
 fn textureDimensions_2ff32a() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2ff32a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl
index 6b12772..d74a6b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_305dd5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.dxc.hlsl
index b1d14e9..957f31a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_305dd5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_305dd5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.fxc.hlsl
index b1d14e9..957f31a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_305dd5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_305dd5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl
index 0b3afa1..d60d805 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.spvasm
index 3d36098..18249ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_305dd5 "textureDimensions_305dd5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_305dd5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.wgsl
index b9c6491..3192b7f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/305dd5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureDimensions_305dd5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_305dd5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl
index c24bb4b..a1a6d89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31799c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl
index da27bd4..e6e22f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31799c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31799c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl
index da27bd4..e6e22f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31799c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31799c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl
index ef359b4..76eb31a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.spvasm
index b89985f..da8aeb2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_31799c "textureDimensions_31799c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_31799c = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.wgsl
index 6708be9..5228f3f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31799c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, write>;
 
 fn textureDimensions_31799c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31799c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl
index ea9cf9e..19c13e0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31d00d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.dxc.hlsl
index e2ad60e..383d0d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31d00d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31d00d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.fxc.hlsl
index e2ad60e..383d0d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31d00d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31d00d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl
index 3e1dc1b..d33691a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.spvasm
index 2b228f3a..d5312ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_31d00d "textureDimensions_31d00d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_31d00d = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.wgsl
index 726f817..bb607fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/31d00d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
 
 fn textureDimensions_31d00d() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31d00d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl
index bd7c063..e7907a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_325338();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.dxc.hlsl
index 0392443..aad6d69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_325338() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_325338()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.fxc.hlsl
index 0392443..aad6d69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_325338() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_325338()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.glsl
index 4fcb64d..d2d5c7d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_325338() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_325338() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.spvasm
index 4051084..416f3fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_325338 "textureDimensions_325338"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_325338 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.wgsl
index 55aa260..dfa19bd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/325338.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
 
 fn textureDimensions_325338() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_325338();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl
index 3944c5f..ea20605 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureDimensions(texture: texture_cube_array<u32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_346fee();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl
index 982de68..d5cf200 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_346fee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_346fee()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl
index 982de68..d5cf200 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_346fee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_346fee()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.spvasm
index 01a9447..55b2f22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_346fee "textureDimensions_346fee"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureDimensions_346fee = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %uint_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.wgsl
index f072c45..6d2286e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/346fee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureDimensions_346fee() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_346fee();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl
index 399f816..18ebd48 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35a7e5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
index 0f3f83d..baf93a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35a7e5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35a7e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
index 0f3f83d..baf93a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35a7e5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35a7e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl
index e33c0cf..4075611 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.spvasm
index ef047c0..c96cb87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_35a7e5 "textureDimensions_35a7e5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_35a7e5 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.wgsl
index 52ce426..d7b7816 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35a7e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, write>;
 
 fn textureDimensions_35a7e5() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35a7e5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl
index 16bbf34..3fd092a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35ee69();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
index cf0695f..719cebb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35ee69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35ee69()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
index cf0695f..719cebb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35ee69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35ee69()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.spvasm
index 7204bd8..96991d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_35ee69 "textureDimensions_35ee69"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_35ee69 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.wgsl
index f038514..fa6fb50 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/35ee69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, write>;
 
 fn textureDimensions_35ee69() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35ee69();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl
index 6f75d6e..33307c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_36eeb7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl
index 57cb792..ef57f27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_36eeb7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_36eeb7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl
index 57cb792..ef57f27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_36eeb7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_36eeb7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.glsl
index 45dcb14..2fe5679 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_36eeb7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_36eeb7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.spvasm
index c10b04c..9ecf888 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_36eeb7 "textureDimensions_36eeb7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_36eeb7 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.wgsl
index 20f6a21..723e049 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/36eeb7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureDimensions_36eeb7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_36eeb7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl
index 2a315f1..09924ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_378a65();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl
index 9c1c332..745a703 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_378a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_378a65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl
index 9c1c332..745a703 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_378a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_378a65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl
index c527cc5..2bff7f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.spvasm
index 4787baa..5987a28 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_378a65 "textureDimensions_378a65"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_378a65 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.wgsl
index 79a1a8f..0fb9976 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/378a65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, write>;
 
 fn textureDimensions_378a65() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_378a65();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl
index 46c9b59..cdcc561 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureDimensions(texture: texture_cube<f32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_382b16();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl
index 07479ac..a82dbd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_382b16() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_382b16()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl
index 07479ac..a82dbd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_382b16() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_382b16()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.glsl
index 99fb4b2..0174c91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_382b16() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_382b16() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.spvasm
index 1d07b48..df787d0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_382b16 "textureDimensions_382b16"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -75,7 +75,7 @@
 %textureDimensions_382b16 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.wgsl
index 23966fb..4926dd9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/382b16.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureDimensions_382b16() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_382b16();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl
index 35d0989..8bb9bbd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3834f8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.dxc.hlsl
index 3acfbef..34b5fc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3834f8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3834f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.fxc.hlsl
index 3acfbef..34b5fc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3834f8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3834f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl
index b528dd7..d9a5ead 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.spvasm
index 6e17440..677c265 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3834f8 "textureDimensions_3834f8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_3834f8 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.wgsl
index 0480cf3..d8b4de7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3834f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureDimensions_3834f8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3834f8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl
index 896e2d2..ec2f637 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_38c9ca();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl
index c4f6899..5e19337 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_38c9ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_38c9ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl
index c4f6899..5e19337 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_38c9ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_38c9ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.glsl
index 06c85ee..05f25f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_38c9ca() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_38c9ca() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.spvasm
index e55ffe0..8844e06 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_38c9ca "textureDimensions_38c9ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_38c9ca = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.wgsl
index 16c7f6f..bb35c93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/38c9ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureDimensions_38c9ca() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_38c9ca();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl
index 6ae2bf3..7e0e9e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureDimensions(texture: texture_cube_array<i32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3963d0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
index 24ec845f..1b44cfa2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3963d0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3963d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
index 24ec845f..1b44cfa2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3963d0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3963d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.spvasm
index 4be3bac..bcc76bc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3963d0 "textureDimensions_3963d0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureDimensions_3963d0 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %uint_1
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.wgsl
index e289d7d..8a8008d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3963d0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureDimensions_3963d0() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3963d0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl
index be73c8b..fdf0186 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_397dab();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.dxc.hlsl
index ab761b5..188c425 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_397dab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_397dab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.fxc.hlsl
index ab761b5..188c425 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_397dab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_397dab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl
index 67ff684..afd7c33 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.spvasm
index e49b1b5..02b63af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_397dab "textureDimensions_397dab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_397dab = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.wgsl
index 8ff0955..f8837b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/397dab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureDimensions_397dab() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_397dab();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl
index 8168572..ba51ff8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a5bb1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
index 41ede51..d63b040 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_3a5bb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_3a5bb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
index 41ede51..d63b040 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_3a5bb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_3a5bb1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl
index 765951b..30d6fb2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.spvasm
index 587b0cc..7a41ac9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3a5bb1 "textureDimensions_3a5bb1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_3a5bb1 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.wgsl
index 7d2e79e..9f829bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a5bb1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, write>;
 
 fn textureDimensions_3a5bb1() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a5bb1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl
index 81310aa..a753688 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a7b69();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
index 09d3fa2..456fe67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3a7b69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3a7b69()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
index 09d3fa2..456fe67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3a7b69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3a7b69()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl
index 21b27ab..862a71e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.spvasm
index f9e6a54..3d85010 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3a7b69 "textureDimensions_3a7b69"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_3a7b69 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.wgsl
index 17eea7d..6022e52 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3a7b69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureDimensions_3a7b69() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a7b69();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl
index 25c4d95..f30a62d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3af3e7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
index a9adc4f..b94c179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_3af3e7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_3af3e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
index a9adc4f..b94c179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_3af3e7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_3af3e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl
index d8753b6..86ea587 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.spvasm
index da7799b..2567aec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3af3e7 "textureDimensions_3af3e7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_3af3e7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.wgsl
index 8cb2d89..ec1ae01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3af3e7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, write>;
 
 fn textureDimensions_3af3e7() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3af3e7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl
index 529cae6..e90ed4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureDimensions(texture: texture_depth_2d) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3b38f6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
index 48fa670..3900041 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3b38f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3b38f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
index 48fa670..3900041 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3b38f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3b38f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.glsl
index 5b8a15b..73d3254 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_3b38f6() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_3b38f6() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.spvasm
index deb97c7..e42a550 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3b38f6 "textureDimensions_3b38f6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_3b38f6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.wgsl
index fc18b34..9683beb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3b38f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureDimensions_3b38f6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3b38f6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl
index f118105..ea5b545 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3baab5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
index 2af7cb3..71eec94 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3baab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3baab5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
index 2af7cb3..71eec94 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3baab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3baab5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl
index 482e6f5..5751469 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.spvasm
index da3e969..c7c1cbb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3baab5 "textureDimensions_3baab5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_3baab5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.wgsl
index fd31f98..ce2c110 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3baab5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureDimensions_3baab5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3baab5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl
index 8c201ff..3e814db 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3bf12a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl
index ecce472..7789859 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3bf12a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3bf12a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl
index ecce472..7789859 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3bf12a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3bf12a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl
index bba9dab..139c7a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.spvasm
index 496f188..346e2f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3bf12a "textureDimensions_3bf12a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_3bf12a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.wgsl
index 4360cf7..a4dd54a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3bf12a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureDimensions_3bf12a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3bf12a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl
index ab2cfce..fc1a991 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureDimensions(texture: texture_cube_array<i32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3c66f0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
index 65a919d..a105b7b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3c66f0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3c66f0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
index 65a919d..a105b7b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3c66f0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3c66f0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.spvasm
index 803e097..1cd8a7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3c66f0 "textureDimensions_3c66f0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureDimensions_3c66f0 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %int_1
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.wgsl
index 3012659..ba64805 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3c66f0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureDimensions_3c66f0() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3c66f0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl
index f2b54d9..725e7a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureDimensions(texture: texture_multisampled_2d<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3f3474();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
index e26a378..c8e36dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3f3474() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3f3474()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
index e26a378..c8e36dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3f3474() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3f3474()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.glsl
index 23a872c..d80011f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_3f3474() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_3f3474() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.spvasm
index f000b98..6195f53 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3f3474 "textureDimensions_3f3474"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_3f3474 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.wgsl
index 8cf9008..0ef69d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3f3474.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureDimensions_3f3474() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3f3474();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl
index b8dd8bd..ce2e995 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureDimensions(texture: texture_2d_array<f32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3fc3dc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
index d8990c6..8c3da3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3fc3dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3fc3dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
index d8990c6..8c3da3c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3fc3dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3fc3dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.glsl
index 9b7ac0b..0677e13 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_3fc3dc() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_3fc3dc() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.spvasm
index 19c606f..1ace3d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3fc3dc "textureDimensions_3fc3dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureDimensions_3fc3dc = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %uint_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.wgsl
index 42c031d..5444a6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3fc3dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureDimensions_3fc3dc() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3fc3dc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl
index 266ff8b..7728089 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3ff0a5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl
index b4e5610..409d9c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3ff0a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3ff0a5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl
index b4e5610..409d9c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3ff0a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3ff0a5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl
index cef1986..e7a5455 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.spvasm
index e01fff6..881de02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3ff0a5 "textureDimensions_3ff0a5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_3ff0a5 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.wgsl
index aa34739..adf3f6d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/3ff0a5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureDimensions_3ff0a5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3ff0a5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl
index 38ef2ef..828ff19 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40c671();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl
index 1ebabb8..aa5fb98 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_40c671() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_40c671()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl
index 1ebabb8..aa5fb98 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_40c671() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_40c671()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl
index 0e3d094..d6277be 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.spvasm
index 90b2a20..76a4179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_40c671 "textureDimensions_40c671"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_40c671 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.wgsl
index 3494c29..1a419e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40c671.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, write>;
 
 fn textureDimensions_40c671() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40c671();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl
index 5fda4a2..b83f38f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r8unorm, read>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40da20();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.dxc.hlsl
index a3a8aab..a2f3609 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_40da20() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40da20()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.fxc.hlsl
index a3a8aab..a2f3609 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_40da20() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40da20()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.spvasm
index 3daff3f..6b0f847 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_40da20 "textureDimensions_40da20"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_40da20 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.wgsl
index c8d1b8a..89e6954 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40da20.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read>;
 
 fn textureDimensions_40da20() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40da20();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl
index e58e2bc..bd0b439 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40ecf4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
index bdee881..2b104f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_40ecf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40ecf4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
index bdee881..2b104f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_40ecf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40ecf4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl
index b23c546..2521a5a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.spvasm
index fa1fdf6..af95f40 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_40ecf4 "textureDimensions_40ecf4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_40ecf4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.wgsl
index a978f80..da3a84c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/40ecf4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureDimensions_40ecf4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40ecf4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl
index cd90a0a..91f9240 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_41545f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl
index 70788c3..6c8350c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_41545f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_41545f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl
index 70788c3..6c8350c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_41545f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_41545f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl
index 5fd5518..a30006d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.spvasm
index 6467d2a..2e2f88a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_41545f "textureDimensions_41545f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_41545f = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.wgsl
index 5896f00..7b974ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/41545f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureDimensions_41545f() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_41545f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl
index 0c1a24d..ccf91b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_423519();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.dxc.hlsl
index 30206bc..d8b9c10 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_423519() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_423519()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.fxc.hlsl
index 30206bc..d8b9c10 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_423519() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_423519()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl
index 2e5e30b..e001f81 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.spvasm
index bcd8fc8..814ecd3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_423519 "textureDimensions_423519"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_423519 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.wgsl
index e866326..dfe3ad5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/423519.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read>;
 
 fn textureDimensions_423519() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_423519();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl
index 93e4dad..abc7c56 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_427f92();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.dxc.hlsl
index 7025b2a..0e8bbde 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_427f92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_427f92()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.fxc.hlsl
index 7025b2a..0e8bbde 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_427f92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_427f92()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.glsl
index 61aff2d..40d1603 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_427f92() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_427f92() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.spvasm
index e9993ce..785e183 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_427f92 "textureDimensions_427f92"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_427f92 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.wgsl
index 3196bdc..95528c2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/427f92.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureDimensions_427f92() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_427f92();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl
index 58a827b..dbe5eb5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_439651();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl
index 02f0a02..23ae3b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_439651() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_439651()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl
index 02f0a02..23ae3b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_439651() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_439651()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.spvasm
index c11d388..45596b4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_439651 "textureDimensions_439651"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_439651 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.wgsl
index cb65e4a..bce2820 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/439651.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, write>;
 
 fn textureDimensions_439651() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_439651();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl
index 2ccc63e..844db97 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureDimensions(texture: texture_2d_array<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_445376();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl
index d7cd926..06031a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_445376() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_445376()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl
index d7cd926..06031a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_445376() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_445376()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.glsl
index 888383d..72a9e05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_445376() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_445376() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.spvasm
index 3fe653f..06927e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_445376 "textureDimensions_445376"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_445376 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.wgsl
index bc19315..37df87c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/445376.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureDimensions_445376() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_445376();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl
index ade9410..a7ced7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_44b358();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl
index 1554ce8..60d43e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_44b358() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_44b358()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl
index 1554ce8..60d43e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_44b358() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_44b358()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl
index d4226d8..34aa6c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.spvasm
index fa85a56..8059a50 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_44b358 "textureDimensions_44b358"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_44b358 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.wgsl
index 2f1476c..34bb051 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/44b358.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, write>;
 
 fn textureDimensions_44b358() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_44b358();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl
index 1c81769..050a673 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_452fc1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
index 1ee752a5..f7efea9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_452fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_452fc1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
index 1ee752a5..f7efea9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_452fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_452fc1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl
index 161b50c..6f2cc2f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.spvasm
index 7bd0107..dc26d8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_452fc1 "textureDimensions_452fc1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_452fc1 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.wgsl
index 7927f34..af6b2d5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/452fc1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureDimensions_452fc1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_452fc1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl
index 2e7cc17..0f65aad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureDimensions(texture: texture_2d_array<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_46f0fc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
index 474b153..b89acbf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_46f0fc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_46f0fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
index 474b153..b89acbf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_46f0fc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_46f0fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.glsl
index 12fa9fe..b3fa523 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_46f0fc() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_46f0fc() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.spvasm
index ea0d0ae..49eef8d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_46f0fc "textureDimensions_46f0fc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_46f0fc = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.wgsl
index 223b755..5590839 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/46f0fc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureDimensions_46f0fc() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_46f0fc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl
index a94111d..8309035 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4716a4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.dxc.hlsl
index 70cd007..7d10456 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4716a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4716a4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.fxc.hlsl
index 70cd007..7d10456 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4716a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4716a4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl
index 2225337..b0910ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.spvasm
index cdff3ea..af2b564 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4716a4 "textureDimensions_4716a4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_4716a4 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.wgsl
index 5401350..683d709 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4716a4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureDimensions_4716a4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4716a4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl
index da07b93..d7781c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_475c10();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.dxc.hlsl
index 027d6e9..dbee0a5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_475c10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_475c10()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.fxc.hlsl
index 027d6e9..dbee0a5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_475c10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_475c10()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl
index 16718d4..8bc91b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.spvasm
index b683a9b..2b7366e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_475c10 "textureDimensions_475c10"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_475c10 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.wgsl
index 54e8ff8..69b6d63 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/475c10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read>;
 
 fn textureDimensions_475c10() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_475c10();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl
index aa365a3..12ddc8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureDimensions(texture: texture_cube<f32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_49a067();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl
index 68c6e79..7d059b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_49a067() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_49a067()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl
index 68c6e79..7d059b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_49a067() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_49a067()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.glsl
index bcddf47..ef32ef7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_49a067() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_49a067() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.spvasm
index 9e9c0bd..686c0bb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_49a067 "textureDimensions_49a067"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_49a067 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.wgsl
index b381d64..7754c00 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/49a067.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureDimensions_49a067() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_49a067();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl
index 026bfa8..15f6e99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4acec7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
index 4214b5e..6b735d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_4acec7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4acec7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
index 4214b5e..6b735d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_4acec7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4acec7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.spvasm
index 133d740..1839195 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4acec7 "textureDimensions_4acec7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_4acec7 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.wgsl
index d861528..3e42203 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4acec7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureDimensions_4acec7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4acec7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl
index d7b47e2..1c3aad6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8unorm, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4b26ef();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
index 2616344..db49ac8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4b26ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4b26ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
index 2616344..db49ac8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4b26ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4b26ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl
index 8151cfc..74179d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.spvasm
index 2044be2..2ad900c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4b26ef "textureDimensions_4b26ef"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4b26ef = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.wgsl
index deff631..16b8015 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4b26ef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, write>;
 
 fn textureDimensions_4b26ef() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4b26ef();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl
index 1ffd4d7..f4eb13c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureDimensions(texture: texture_2d<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4be71b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
index 646604a..146a1ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4be71b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4be71b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
index 646604a..146a1ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4be71b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4be71b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.glsl
index c1f962a..87bda95 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_4be71b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_4be71b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.spvasm
index dde943c..c285648 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4be71b "textureDimensions_4be71b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_4be71b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.wgsl
index eff8954..837d2d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4be71b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureDimensions_4be71b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4be71b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl
index 8e7aea4..631d653 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d1f71();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl
index 06b23e1..1a36e03 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4d1f71() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4d1f71()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl
index 06b23e1..1a36e03 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4d1f71() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4d1f71()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.spvasm
index d4c58c7..1709500 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4d1f71 "textureDimensions_4d1f71"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_4d1f71 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.wgsl
index f108089..e1425e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d1f71.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureDimensions_4d1f71() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d1f71();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl
index 35ba76c..51ae3cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d27b3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl
index 4c85d86..0699c18 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4d27b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4d27b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl
index 4c85d86..0699c18 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4d27b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4d27b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl
index 339f679..3d0436e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.spvasm
index 87f507c..104637a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4d27b3 "textureDimensions_4d27b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4d27b3 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.wgsl
index 0cb11b8..bfeaa09 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4d27b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
 
 fn textureDimensions_4d27b3() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d27b3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl
index 103b4db..4379450 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4df14c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.dxc.hlsl
index 89d85bb..a2dc490 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4df14c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4df14c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.fxc.hlsl
index 89d85bb..a2dc490 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4df14c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4df14c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.spvasm
index 505d465..0ce0eea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4df14c "textureDimensions_4df14c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4df14c = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.wgsl
index 0b9b4ff..afd4b3e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4df14c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
 
 fn textureDimensions_4df14c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4df14c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl
index ce2ef12..d41c791 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4e540a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.dxc.hlsl
index 3706280..c76100a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_4e540a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_4e540a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.fxc.hlsl
index 3706280..c76100a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_4e540a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_4e540a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl
index e79ee6f..cb646db 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.spvasm
index 036ca90..b69296a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4e540a "textureDimensions_4e540a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4e540a = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.wgsl
index fae0598..939d9f1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/4e540a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
 
 fn textureDimensions_4e540a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4e540a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl
index 6244ea5..80e9af8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureDimensions(texture: texture_2d_array<u32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_528c0e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
index 40eabf5..940ef70 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_528c0e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_528c0e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
index 40eabf5..940ef70 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_528c0e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_528c0e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.glsl
index d305eac..8e2455c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_528c0e() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_528c0e() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.spvasm
index d49cec4..a935e13 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_528c0e "textureDimensions_528c0e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureDimensions_528c0e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %uint_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.wgsl
index ac24479..e085329 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/528c0e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureDimensions_528c0e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_528c0e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl
index 18d151c..da953dd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_52cf60();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.dxc.hlsl
index 6c9bcd1..bac6d79 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_52cf60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_52cf60()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.fxc.hlsl
index 6c9bcd1..bac6d79 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_52cf60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_52cf60()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.spvasm
index 37b12d3..1eff127 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_52cf60 "textureDimensions_52cf60"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_52cf60 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.wgsl
index f52f6f1..5a1afe6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/52cf60.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read>;
 
 fn textureDimensions_52cf60() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_52cf60();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl
index f6356b2..b5a929e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_534ef8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.dxc.hlsl
index fbdaf14..0642833 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_534ef8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_534ef8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.fxc.hlsl
index fbdaf14..0642833 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_534ef8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_534ef8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl
index 8aad6f8..8414f8d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.spvasm
index 3b90040..0b48a27 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_534ef8 "textureDimensions_534ef8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_534ef8 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.wgsl
index e4ea83c..7e64f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/534ef8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read>;
 
 fn textureDimensions_534ef8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_534ef8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl
index a8f6aff..bc3864f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r8unorm, write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_542c62();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.dxc.hlsl
index f235ef2..417ed35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_542c62() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_542c62()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.fxc.hlsl
index f235ef2..417ed35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_542c62() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_542c62()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.spvasm
index bc81cf7..930eaa3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_542c62 "textureDimensions_542c62"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_542c62 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.wgsl
index 15e4653..bc901ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/542c62.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, write>;
 
 fn textureDimensions_542c62() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_542c62();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl
index 8b04658..85fd4b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<bgra8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_55fdeb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl
index c054967..33ff1ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_55fdeb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_55fdeb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl
index c054967..33ff1ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_55fdeb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_55fdeb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.glsl
index d289876..9113039 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_55fdeb() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_55fdeb() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.spvasm
index 05fbc50..ac32d6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_55fdeb "textureDimensions_55fdeb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_55fdeb = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.wgsl
index e351c45..fbae82c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/55fdeb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
 
 fn textureDimensions_55fdeb() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_55fdeb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl
index 04ba6f0..87e51b0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<bgra8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5703b3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.dxc.hlsl
index e3deb39..0788f86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_5703b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5703b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.fxc.hlsl
index e3deb39..0788f86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_5703b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5703b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.glsl
index 41331f9..3085746 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_5703b3() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_5703b3() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.spvasm
index 5e28743..01fbbcc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_5703b3 "textureDimensions_5703b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_5703b3 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.wgsl
index 4e825e9..3aee890 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5703b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
 
 fn textureDimensions_5703b3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5703b3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl
index 88813a2..44ed3d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r8unorm, read_write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_578e75();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.dxc.hlsl
index d377d62..cb2e9fd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_578e75() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_578e75()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.fxc.hlsl
index d377d62..cb2e9fd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_578e75() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_578e75()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.spvasm
index 1b37edb..b473455 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_578e75 "textureDimensions_578e75"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_578e75 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.wgsl
index eeabf1d..874e339 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/578e75.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureDimensions_578e75() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_578e75();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl
index 5d52b5f..0eed5b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_579eee();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.dxc.hlsl
index 36c5394..79cbf99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_579eee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_579eee()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.fxc.hlsl
index 36c5394..79cbf99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_579eee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_579eee()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.glsl
index 2bd352f..21f4b26 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_579eee() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_579eee() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.spvasm
index 5bd3e9b..561c18c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_579eee "textureDimensions_579eee"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_579eee = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.wgsl
index 82ec6a9..c544585 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/579eee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
 
 fn textureDimensions_579eee() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_579eee();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl
index cc12ddd..d92653d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_58a82d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
index a118217..8ddd44f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_58a82d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_58a82d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
index a118217..8ddd44f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_58a82d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_58a82d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl
index 718680c..e4ce75e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.spvasm
index 6824a6b..32ec9cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_58a82d "textureDimensions_58a82d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_58a82d = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.wgsl
index fe37d2a..9eba345 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/58a82d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, write>;
 
 fn textureDimensions_58a82d() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_58a82d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl
index a1ff9a7..e24dee7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_591981();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl
index d504f19..0dab7ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_591981() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_591981()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl
index d504f19..0dab7ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_591981() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_591981()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl
index 42c73f0..bd6ce0d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.spvasm
index 3ff7058..afb9701 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_591981 "textureDimensions_591981"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_591981 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.wgsl
index e787395..9698542 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/591981.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, write>;
 
 fn textureDimensions_591981() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_591981();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl
index f9af455..22665aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_599ab5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
index 138ed9f..23cd66b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_599ab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_599ab5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
index 138ed9f..23cd66b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_599ab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_599ab5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl
index c201763..c1da6f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.spvasm
index 87d7f72..8b73b95 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_599ab5 "textureDimensions_599ab5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_599ab5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.wgsl
index 13a4fc6..c940340 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/599ab5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, write>;
 
 fn textureDimensions_599ab5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_599ab5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl
index a5434b0..31286aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<bgra8unorm, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5b4b10();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
index 2ee5848..c9bf84c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_5b4b10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_5b4b10()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
index 2ee5848..c9bf84c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_5b4b10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_5b4b10()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl
index fdf2377..0bf5680 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.spvasm
index f17f678..50a926b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_5b4b10 "textureDimensions_5b4b10"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_5b4b10 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.wgsl
index b5db4ad..019e948 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5b4b10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, write>;
 
 fn textureDimensions_5b4b10() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5b4b10();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl
index c5b9ced..767ee44 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureDimensions(texture: texture_1d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5df042();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl
index ff07b9d..b4d3375 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_5df042() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5df042()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl
index ff07b9d..b4d3375 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_5df042() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5df042()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.glsl
index 492b443..3614951 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_5df042() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_5df042() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.spvasm
index 98c0a72..7c807ba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_5df042 "textureDimensions_5df042"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureDimensions_5df042 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %uint %24 %int_0
                OpStore %res %23
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.wgsl
index 4e04c2b..006c16a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/5df042.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureDimensions_5df042() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5df042();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl
index 9a7c5fe..7eda316 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_607979();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl
index e968dce..9d61bfa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_607979() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_607979()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl
index e968dce..9d61bfa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_607979() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_607979()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl
index 40833c3..f356ffd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.spvasm
index 44b49a2..990b65d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_607979 "textureDimensions_607979"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_607979 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.wgsl
index b92feb1..086b2c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/607979.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, write>;
 
 fn textureDimensions_607979() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_607979();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl
index 2d93d90..d99f791 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_609d34();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.dxc.hlsl
index 343a409..8309511 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_609d34() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_609d34()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.fxc.hlsl
index 343a409..8309511 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_609d34() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_609d34()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl
index 6a546f1..e830c6c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.spvasm
index ab6279f..f6f966f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_609d34 "textureDimensions_609d34"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_609d34 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.wgsl
index aa5f5d4..7ff11a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/609d34.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureDimensions_609d34() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_609d34();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl
index dbf4b41..1b9d4f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_617dc8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.dxc.hlsl
index 6f8308e..a5e9b2d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_617dc8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_617dc8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.fxc.hlsl
index 6f8308e..a5e9b2d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_617dc8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_617dc8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl
index 6f1eea2..db59d9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.spvasm
index 81701e2..0f08270 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_617dc8 "textureDimensions_617dc8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_617dc8 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.wgsl
index ebd801d..ade8651 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/617dc8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
 
 fn textureDimensions_617dc8() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_617dc8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl
index 8db18a6..f81156d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureDimensions(texture: texture_2d_array<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62cb5a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
index 18c9d95..f5c9fe7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62cb5a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62cb5a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
index 18c9d95..f5c9fe7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62cb5a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62cb5a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.glsl
index fb49cff..48c19f1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_62cb5a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_62cb5a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.spvasm
index 2134dea..2b21f76 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_62cb5a "textureDimensions_62cb5a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -78,7 +78,7 @@
 %textureDimensions_62cb5a = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %int_0
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.wgsl
index aab6ffb..99d5b81 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62cb5a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureDimensions_62cb5a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62cb5a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl
index efdae6a..671ab09 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62e7ae();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl
index dc4eac2..4f6ac4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62e7ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62e7ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl
index dc4eac2..4f6ac4a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62e7ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62e7ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl
index 703426f..da9457a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.spvasm
index 0f24380..7d768cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_62e7ae "textureDimensions_62e7ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_62e7ae = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.wgsl
index 02a74fb..7c96729 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/62e7ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read>;
 
 fn textureDimensions_62e7ae() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62e7ae();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl
index 414b639..00ccc35 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureDimensions(texture: texture_cube<i32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_64dc74();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
index 7cc9d43..a4368d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_64dc74() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_64dc74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
index 7cc9d43..a4368d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_64dc74() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_64dc74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.glsl
index 143faa0..162b9e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_64dc74() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_64dc74() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.spvasm
index 64d77a3..d243841 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_64dc74 "textureDimensions_64dc74"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_64dc74 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %uint_1
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.wgsl
index fb9b68d..0df3dc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/64dc74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureDimensions_64dc74() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_64dc74();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl
index cad83c8..65586d3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_674058();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl
index d33607b..97bcee9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_674058() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_674058()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl
index d33607b..97bcee9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_674058() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_674058()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl
index fd38d7e..12cb22b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.spvasm
index d271b43..2ee78a3f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_674058 "textureDimensions_674058"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_674058 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.wgsl
index fb06937..4b811cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/674058.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureDimensions_674058() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_674058();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl
index c2a4cab..38b8251 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dae40();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.dxc.hlsl
index 74e4a59..2121179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dae40() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dae40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.fxc.hlsl
index 74e4a59..2121179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dae40() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dae40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.spvasm
index 9dc6849..eb52fae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6dae40 "textureDimensions_6dae40"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_6dae40 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.wgsl
index 205bf25..b4b36aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dae40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read>;
 
 fn textureDimensions_6dae40() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dae40();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl
index 3de889b..ed4e13f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dbef4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl
index d1d3ac9..49d850b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dbef4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dbef4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl
index d1d3ac9..49d850b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dbef4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dbef4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.spvasm
index 9827538..248f562 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6dbef4 "textureDimensions_6dbef4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_6dbef4 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.wgsl
index 906db61..44267ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6dbef4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read>;
 
 fn textureDimensions_6dbef4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dbef4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl
index 126affc..88b9a30 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureDimensions(texture: texture_3d<u32>, level: u32) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e6c7a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
index ce53a9b..fea9555 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6e6c7a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6e6c7a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
index ce53a9b..fea9555 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6e6c7a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6e6c7a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.glsl
index 2403408..3fa5163 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_6e6c7a() {
   uvec3 res = uvec3(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_6e6c7a() {
   uvec3 res = uvec3(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.spvasm
index 11a350f..80fc61f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6e6c7a "textureDimensions_6e6c7a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
@@ -75,7 +75,7 @@
 %textureDimensions_6e6c7a = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.wgsl
index e97ad67..d70bc32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e6c7a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureDimensions_6e6c7a() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e6c7a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl
index a57b32b..c9992c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e72c5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl
index aef65e9..bbc4423 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6e72c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6e72c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl
index aef65e9..bbc4423 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6e72c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6e72c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl
index 86f0e29..764f859 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.spvasm
index 1bd4de5..a456b50 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6e72c5 "textureDimensions_6e72c5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_6e72c5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.wgsl
index 4dc753b..9f8db9b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6e72c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read>;
 
 fn textureDimensions_6e72c5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e72c5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl
index 2ad9ae2..b3b4742 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6f1b5d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
index 8123ff6..0629f60 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6f1b5d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6f1b5d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
index 8123ff6..0629f60 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6f1b5d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6f1b5d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.glsl
index ba4220d..183470b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_6f1b5d() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_6f1b5d() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.spvasm
index c9bff73..81b3fe8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6f1b5d "textureDimensions_6f1b5d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_6f1b5d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.wgsl
index f18fc96..ea60186 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/6f1b5d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureDimensions_6f1b5d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6f1b5d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl
index 84696a9..046cd48 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_709357();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.dxc.hlsl
index 5fa73e1..5c90d0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_709357() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_709357()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.fxc.hlsl
index 5fa73e1..5c90d0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_709357() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_709357()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl
index 706f8da..6feb3aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.spvasm
index d8e7766..b6d8f02 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_709357 "textureDimensions_709357"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_709357 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.wgsl
index 25ac5cf..5affa04 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/709357.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read>;
 
 fn textureDimensions_709357() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_709357();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl
index f76a098..a88c943 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_70dd33();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.dxc.hlsl
index a1784ce..41e01a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_70dd33() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_70dd33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.fxc.hlsl
index a1784ce..41e01a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_70dd33() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_70dd33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.glsl
index 3a94f4e..ec154e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_70dd33() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_70dd33() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.spvasm
index 9465d3c..bc02927 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_70dd33 "textureDimensions_70dd33"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_70dd33 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.wgsl
index 9716f35..89fd252 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/70dd33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
 
 fn textureDimensions_70dd33() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_70dd33();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl
index abebea7..4bc3613 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<bgra8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_715917();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.dxc.hlsl
index a669af9..d8ba156 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_715917() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_715917()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.fxc.hlsl
index a669af9..d8ba156 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_715917() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_715917()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.glsl
index 910debb..b38f3aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_715917() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_715917() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.spvasm
index 49cba3d7..ab417ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_715917 "textureDimensions_715917"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_715917 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.wgsl
index d82dc31..8675f90 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/715917.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureDimensions_715917() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_715917();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl
index 6f58938..eddc70d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7228de();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl
index e64e322..ac21e73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_7228de() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7228de()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl
index e64e322..ac21e73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_7228de() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7228de()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl
index 4f546da..67fa95f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.spvasm
index 7ec98b1..a2403dd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7228de "textureDimensions_7228de"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7228de = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.wgsl
index 5e8fba8..fc311e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7228de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, write>;
 
 fn textureDimensions_7228de() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7228de();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl
index 623ea3d..e668e06 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8snorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7327fa();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.dxc.hlsl
index 087ae97..b31fb95 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7327fa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7327fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.fxc.hlsl
index 087ae97..b31fb95 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7327fa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7327fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl
index 21b3f4f..91e5737 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.spvasm
index 3b717e3..6b40eea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7327fa "textureDimensions_7327fa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7327fa = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.wgsl
index 58ad696..4a71892 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7327fa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read>;
 
 fn textureDimensions_7327fa() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7327fa();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl
index f1e07e5..817180a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_740e7c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.dxc.hlsl
index 1981b9c..19197a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_740e7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_740e7c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.fxc.hlsl
index 1981b9c..19197a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_740e7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_740e7c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.spvasm
index fc74d7c..c9f312d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_740e7c "textureDimensions_740e7c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_740e7c = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.wgsl
index a9a7160..058715b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/740e7c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
 
 fn textureDimensions_740e7c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_740e7c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl
index 3a9b7ed..1ae6289 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureDimensions(texture: texture_3d<i32>, level: i32) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756031();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl
index 13b55d4..476b2cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_756031() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_756031()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl
index 13b55d4..476b2cc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_756031() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_756031()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.glsl
index b0b7fe0..557c1f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_756031() {
   uvec3 res = uvec3(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_756031() {
   uvec3 res = uvec3(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.spvasm
index f66754e..48668fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_756031 "textureDimensions_756031"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
@@ -77,7 +77,7 @@
 %textureDimensions_756031 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %25 %int_1
                OpStore %res %24
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.wgsl
index e2b2467..557ae8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756031.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureDimensions_756031() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756031();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl
index 0cfeded..dd559cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756304();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl
index f7304f7..bd2210c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_756304() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_756304()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl
index f7304f7..bd2210c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_756304() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_756304()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl
index f169d1d..a64687b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.spvasm
index ac6825d..ae53be6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_756304 "textureDimensions_756304"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_756304 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.wgsl
index d3e29bd..487985c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/756304.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureDimensions_756304() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756304();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl
index 45ae89b..532f1b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_790e57();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.dxc.hlsl
index 848961a..b567a0d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_790e57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_790e57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.fxc.hlsl
index 848961a..b567a0d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_790e57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_790e57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl
index 85527d9..d914cfd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.spvasm
index 8e9b904..01223f1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_790e57 "textureDimensions_790e57"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_790e57 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.wgsl
index 321022f..8db7753 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/790e57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read>;
 
 fn textureDimensions_790e57() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_790e57();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl
index 75a16f8..7744ec6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_795fbb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.dxc.hlsl
index f82ceb0..2fd7e0c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_795fbb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_795fbb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.fxc.hlsl
index f82ceb0..2fd7e0c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_795fbb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_795fbb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.glsl
index 6a29446..4fd11fb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_795fbb() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_795fbb() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.spvasm
index 0245a7a..a3f99c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_795fbb "textureDimensions_795fbb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_795fbb = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.wgsl
index 73694d3..dd4dafd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/795fbb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureDimensions_795fbb() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_795fbb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl
index e0e015b..d2a3c89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_797c30();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.dxc.hlsl
index 58091cb..bca7d6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_797c30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_797c30()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.fxc.hlsl
index 58091cb..bca7d6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_797c30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_797c30()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl
index 25b159c..44829d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.spvasm
index 018e077..07e400a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_797c30 "textureDimensions_797c30"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_797c30 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.wgsl
index eadad37..8383531 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/797c30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read>;
 
 fn textureDimensions_797c30() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_797c30();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl
index 9534b02..38c96a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_79d168();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl
index 42adf67..9c6c4c7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_79d168() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_79d168()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl
index 42adf67..9c6c4c7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_79d168() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_79d168()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.glsl
index fde690d..bacc564 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_79d168() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_79d168() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.spvasm
index e36647b..45af9c0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_79d168 "textureDimensions_79d168"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_79d168 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.wgsl
index f44e074..41769e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/79d168.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureDimensions_79d168() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_79d168();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl
index e11bc60..fba8154 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureDimensions(texture: texture_3d<u32>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a3890();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
index e964059..1693f29 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_7a3890() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7a3890()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
index e964059..1693f29 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_7a3890() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7a3890()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.glsl
index acbd9b1..c4861dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_7a3890() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_7a3890() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.spvasm
index bed858b..a4e5425 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7a3890 "textureDimensions_7a3890"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_7a3890 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.wgsl
index f4c32b4..ce60ae2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a3890.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureDimensions_7a3890() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a3890();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl
index cc1886b..038af23 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureDimensions(texture: texture_cube<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a9e30();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
index a87f3a6..803b9ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7a9e30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7a9e30()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
index a87f3a6..803b9ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7a9e30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7a9e30()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.glsl
index 3aaf678..6c989c0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_7a9e30() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_7a9e30() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.spvasm
index 67046a4..ec244a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7a9e30 "textureDimensions_7a9e30"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_7a9e30 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.wgsl
index b199663..ae9d368 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7a9e30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureDimensions_7a9e30() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a9e30();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl
index cdb32f1..ea4c088 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c753b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.dxc.hlsl
index 1db987d..a8a4017 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7c753b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7c753b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.fxc.hlsl
index 1db987d..a8a4017 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7c753b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7c753b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl
index 8fb7c8a..af2df69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.spvasm
index fb7b95a..b8728c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7c753b "textureDimensions_7c753b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7c753b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.wgsl
index 50000e6..28bcef7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c753b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read>;
 
 fn textureDimensions_7c753b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c753b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl
index 24240e4..b4c073f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c7c64();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl
index dae5b6a..d2bbc73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_7c7c64() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7c7c64()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl
index dae5b6a..d2bbc73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_7c7c64() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7c7c64()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.spvasm
index 7efe268..c000769 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7c7c64 "textureDimensions_7c7c64"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_7c7c64 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.wgsl
index 8c06909..bc3f180 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7c7c64.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureDimensions_7c7c64() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c7c64();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl
index a8902ab..3277696 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7d8439();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.dxc.hlsl
index c7cd0be..f7643e6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7d8439() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7d8439()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.fxc.hlsl
index c7cd0be..f7643e6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7d8439() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7d8439()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.spvasm
index e1bbd4a..216d1f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7d8439 "textureDimensions_7d8439"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_7d8439 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.wgsl
index 38bdab7..29fc9e5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7d8439.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read>;
 
 fn textureDimensions_7d8439() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7d8439();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl
index 459d96c..020bdae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7ea4b5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl
index 04014ae..1b2746a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_7ea4b5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7ea4b5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl
index 04014ae..1b2746a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_7ea4b5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7ea4b5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.glsl
index 08d0831..032f589 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_7ea4b5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_7ea4b5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.spvasm
index 7fe614c3..5415c77 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7ea4b5 "textureDimensions_7ea4b5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7ea4b5 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.wgsl
index 04a7f43..05ce5ac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7ea4b5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
 
 fn textureDimensions_7ea4b5() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7ea4b5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl
index a59b12d..0abd2be 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7edb05();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.dxc.hlsl
index a27563f..dd37e3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7edb05() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7edb05()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.fxc.hlsl
index a27563f..dd37e3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7edb05() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7edb05()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl
index 2d3247c..b5c3c06 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.spvasm
index 2dd5090..ad38050 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7edb05 "textureDimensions_7edb05"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_7edb05 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.wgsl
index 96cf95a..8afcfc0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/7edb05.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureDimensions_7edb05() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7edb05();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl
index ba02d1e..26bf515 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<bgra8unorm, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8057cb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.dxc.hlsl
index e606ad9..5d7fcc7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_8057cb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8057cb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.fxc.hlsl
index e606ad9..5d7fcc7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_8057cb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8057cb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl
index 8bc5dd5..6ccf80d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.spvasm
index 16682ca..fe04c76 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8057cb "textureDimensions_8057cb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_8057cb = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.wgsl
index 7c07936..ec711d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8057cb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read>;
 
 fn textureDimensions_8057cb() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8057cb();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl
index 4d51a77..f8040dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<bgra8unorm, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8243a1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.dxc.hlsl
index e349c9d..5fabce0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8243a1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8243a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.fxc.hlsl
index e349c9d..5fabce0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8243a1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8243a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.glsl
index 9ddafb9..cb208ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_8243a1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_8243a1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.spvasm
index 41fc4d3..a8ea290 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8243a1 "textureDimensions_8243a1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_8243a1 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.wgsl
index 5a38759..5074556 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8243a1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
 
 fn textureDimensions_8243a1() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8243a1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl
index 1fafbc6..aa3fb36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_835f90();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.dxc.hlsl
index 5a243cd..88d960e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_835f90() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_835f90()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.fxc.hlsl
index 5a243cd..88d960e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_835f90() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_835f90()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.spvasm
index 79437fc..d3dcb19 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_835f90 "textureDimensions_835f90"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_835f90 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.wgsl
index 164dd3f..31e3e91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/835f90.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
 
 fn textureDimensions_835f90() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_835f90();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl
index 9978dda..5584982 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_841ebe();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.dxc.hlsl
index 624efaa..a9fc514 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_841ebe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_841ebe()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.fxc.hlsl
index 624efaa..a9fc514 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_841ebe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_841ebe()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl
index 3e87fb7..09096a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.spvasm
index 30d0021..3d8daf3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_841ebe "textureDimensions_841ebe"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_841ebe = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.wgsl
index a89146f..665a98e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/841ebe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read>;
 
 fn textureDimensions_841ebe() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_841ebe();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl
index 2873057..782de59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<bgra8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_84f363();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl
index 0b839e9..a090151 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_84f363() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_84f363()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl
index 0b839e9..a090151 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_84f363() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_84f363()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl
index b270078..1067642 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.spvasm
index a2d0524..162551a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_84f363 "textureDimensions_84f363"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_84f363 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.wgsl
index c932f7c..d1522a8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/84f363.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, write>;
 
 fn textureDimensions_84f363() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_84f363();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl
index 1cc1a53..2efc6d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_867ead();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl
index d7a8cb8..b9f0d9e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_867ead() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_867ead()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl
index d7a8cb8..b9f0d9e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_867ead() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_867ead()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl
index 78869c6..9af0559 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.spvasm
index 9d27ed8..b6ebea3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_867ead "textureDimensions_867ead"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_867ead = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.wgsl
index 6fe3c09..86017cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/867ead.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureDimensions_867ead() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_867ead();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl
index 0e5386d..45bd2b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureDimensions(texture: texture_cube_array<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_879b73();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl
index b8d3508..ae9bf55 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_879b73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_879b73()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl
index b8d3508..ae9bf55 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_879b73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_879b73()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.spvasm
index 2651b76..a8b5183 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_879b73 "textureDimensions_879b73"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_879b73 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.wgsl
index fbedacd..9d9c7eb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/879b73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureDimensions_879b73() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_879b73();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl
index 5f260e6..b749c29 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_87b42d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.dxc.hlsl
index 6b56a36..b3411c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_87b42d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_87b42d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.fxc.hlsl
index 6b56a36..b3411c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_87b42d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_87b42d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl
index f5059fe..2f88fc8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.spvasm
index a397073..1c6f86e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_87b42d "textureDimensions_87b42d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_87b42d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.wgsl
index afb0532..7567cf0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/87b42d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureDimensions_87b42d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_87b42d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl
index f519406..366d4a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_881dd4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.dxc.hlsl
index 9f540f1..3dde341 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_881dd4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_881dd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.fxc.hlsl
index 9f540f1..3dde341 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_881dd4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_881dd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl
index f62bc9b..295309d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.spvasm
index 0d7ab89..4632a8d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_881dd4 "textureDimensions_881dd4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_881dd4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.wgsl
index 0534b774..cd68987 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/881dd4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureDimensions_881dd4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_881dd4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl
index 2f6342d..a6f8642 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a2b17();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl
index c7f2595..ef96012 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8a2b17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8a2b17()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl
index c7f2595..ef96012 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8a2b17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8a2b17()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.glsl
index 9347193..e8f1d05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8a2b17() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8a2b17() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.spvasm
index 19150f0..3e646a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8a2b17 "textureDimensions_8a2b17"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_8a2b17 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.wgsl
index 1dcf978..df35a9c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a2b17.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
 
 fn textureDimensions_8a2b17() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a2b17();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl
index 0daf7b4..dc84d6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a35f9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
index a8601a2..f9801a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8a35f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8a35f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
index a8601a2..f9801a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8a35f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8a35f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.spvasm
index c4a0ee2..55fb850 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8a35f9 "textureDimensions_8a35f9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8a35f9 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.wgsl
index 35760f9..fb27e53 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8a35f9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, write>;
 
 fn textureDimensions_8a35f9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a35f9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl
index 8a7c254..441575d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r8unorm, read>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8af728();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.dxc.hlsl
index 4800352..094112d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8af728() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8af728()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.fxc.hlsl
index 4800352..094112d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8af728() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8af728()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.spvasm
index d4a0b51..5a4a62b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8af728 "textureDimensions_8af728"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_8af728 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.wgsl
index 7be68c7..5297dd7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8af728.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureDimensions_8af728() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8af728();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl
index 2dbe6e6..b2aff5f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8b9906();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.dxc.hlsl
index 0ffbdd8..bb808c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8b9906() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8b9906()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.fxc.hlsl
index 0ffbdd8..bb808c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8b9906() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8b9906()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.glsl
index ed2ec4e..8517c95 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_8b9906() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_8b9906() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.spvasm
index e729f4b..d9ed48f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8b9906 "textureDimensions_8b9906"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_8b9906 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.wgsl
index b1b0112..b8d9a5a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8b9906.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
 
 fn textureDimensions_8b9906() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8b9906();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl
index c3e0642..6c45c2e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8bd369();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.dxc.hlsl
index 8c87873..d2d04bc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8bd369() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8bd369()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.fxc.hlsl
index 8c87873..d2d04bc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8bd369() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8bd369()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.glsl
index 6f240cc..55b6334 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_8bd369() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_8bd369() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.spvasm
index 2c31319..43f3572 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8bd369 "textureDimensions_8bd369"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_8bd369 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.wgsl
index e4d6144..a40021b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8bd369.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureDimensions_8bd369() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8bd369();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl
index f522243..89e5ba9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e15f4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl
index c06c59f..b7310a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8e15f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8e15f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl
index c06c59f..b7310a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8e15f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8e15f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.spvasm
index 8f7d841..17a854f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8e15f4 "textureDimensions_8e15f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8e15f4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.wgsl
index e4e678a..8f9508a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e15f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read>;
 
 fn textureDimensions_8e15f4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e15f4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl
index bcbb636..2168e41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e5de6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl
index 181bebc..16bdd7a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_8e5de6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8e5de6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl
index 181bebc..16bdd7a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_8e5de6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8e5de6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl
index 2034799..4f6e7b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.spvasm
index a9b5597..f023f00 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8e5de6 "textureDimensions_8e5de6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8e5de6 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.wgsl
index 572a2a0..686863b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8e5de6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read>;
 
 fn textureDimensions_8e5de6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e5de6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl
index c690618..cb0f560 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8efd47();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
index 5898703..c0e23aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8efd47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8efd47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
index 5898703..c0e23aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8efd47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8efd47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl
index 8564b03..dcaf10f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.spvasm
index 1b3d1ca..ff10d8a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8efd47 "textureDimensions_8efd47"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8efd47 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.wgsl
index 4bc96cd..0ffcd83 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/8efd47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, write>;
 
 fn textureDimensions_8efd47() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8efd47();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl
index 51f7d67..3e19d93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_902179();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl
index 52baa84..cf97d7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_902179() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_902179()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl
index 52baa84..cf97d7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_902179() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_902179()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl
index 9d08d87..23a5475 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.spvasm
index 4ab9c75..ffbd40c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_902179 "textureDimensions_902179"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_902179 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.wgsl
index 7764539..193ffe8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/902179.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, write>;
 
 fn textureDimensions_902179() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_902179();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl
index 9e296b7..e652d64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_904b0f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.dxc.hlsl
index e34af49..559533d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_904b0f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_904b0f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.fxc.hlsl
index e34af49..559533d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_904b0f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_904b0f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl
index c7f66b6..6734fd9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.spvasm
index 2452e68..1f733c1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_904b0f "textureDimensions_904b0f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_904b0f = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.wgsl
index 9643cba..4db9cfb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/904b0f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureDimensions_904b0f() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_904b0f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl
index 75acb83..65b2c36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_90dd74();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
index d6bcf75..861250b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_90dd74() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_90dd74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
index d6bcf75..861250b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_90dd74() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_90dd74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl
index 5b04b8b..4b51b99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.spvasm
index 319ba2f..b714a0c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_90dd74 "textureDimensions_90dd74"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_90dd74 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.wgsl
index 4cf5239..b10ff3b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/90dd74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureDimensions_90dd74() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_90dd74();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl
index 5914336..ae1d8a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_91e3b4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl
index 5da5db2..c816b8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_91e3b4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_91e3b4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl
index 5da5db2..c816b8e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_91e3b4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_91e3b4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.spvasm
index 7188500..5e44db3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_91e3b4 "textureDimensions_91e3b4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_91e3b4 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.wgsl
index 5cb5d36..522ac4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/91e3b4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
 
 fn textureDimensions_91e3b4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_91e3b4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl
index d611448..b34c5c5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureDimensions(texture: texture_1d<u32>, level: i32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_920006();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl
index e2e0924..fca4fe5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_920006() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_920006()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl
index e2e0924..fca4fe5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_920006() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_920006()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.glsl
index c4cdfd6..36ba354 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_920006() {
   uint res = uvec2(textureSize(arg_0_1, 1)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_920006() {
   uint res = uvec2(textureSize(arg_0_1, 1)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.spvasm
index 1841491..c64010c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_920006 "textureDimensions_920006"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_920006 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %int_1
                OpStore %res %22
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.wgsl
index ac2d45d..9b719d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/920006.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureDimensions_920006() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_920006();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl
index 0c250a0..675a4cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_92552e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl
index afdeacc..0617d8f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_92552e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_92552e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl
index afdeacc..0617d8f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_92552e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_92552e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl
index e66dfe4..4b57488 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.spvasm
index 598bea9..dcd8ffa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_92552e "textureDimensions_92552e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_92552e = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.wgsl
index 7510eea..bb123e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/92552e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, write>;
 
 fn textureDimensions_92552e() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_92552e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl
index d42a92d..baebb12 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9573f3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
index b5ef49e..778760a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_9573f3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9573f3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
index b5ef49e..778760a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_9573f3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9573f3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.spvasm
index 9cddcf0..0ed4198 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9573f3 "textureDimensions_9573f3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_9573f3 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.wgsl
index d0263ed..6b614d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9573f3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, write>;
 
 fn textureDimensions_9573f3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9573f3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl
index cacf390..5b1386f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureDimensions(texture: texture_1d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_965645();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl
index 3ba9c36..412c5df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_965645() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_965645()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl
index 3ba9c36..412c5df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_965645() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_965645()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.glsl
index 11a6898..93ed2f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_965645() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_965645() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.spvasm
index 5ddf778..4f6fe67 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_965645 "textureDimensions_965645"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_965645 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %int_0
                OpStore %res %22
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.wgsl
index 794984c..e0af564 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/965645.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureDimensions_965645() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_965645();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl
index f21c80a..5e2ff2c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureDimensions(texture: texture_cube_array<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_98b2d3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
index 8d5c755..ed151ea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_98b2d3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_98b2d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
index 8d5c755..ed151ea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_98b2d3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_98b2d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.spvasm
index 20a27ef..b04e77b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_98b2d3 "textureDimensions_98b2d3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -79,7 +79,7 @@
 %textureDimensions_98b2d3 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %int_0
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.wgsl
index 80485dd..d9e7554 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/98b2d3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureDimensions_98b2d3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_98b2d3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl
index a01b684..9888506 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureDimensions(texture: texture_depth_2d, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_991ea9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
index 05d703f..88507f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_991ea9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_991ea9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
index 05d703f..88507f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_991ea9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_991ea9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.glsl
index 2b2395e..6e5d5ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_991ea9() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_991ea9() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.spvasm
index 84e1f81..6612a44 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_991ea9 "textureDimensions_991ea9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -75,7 +75,7 @@
 %textureDimensions_991ea9 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.wgsl
index d2fcb5c..6c9defb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/991ea9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureDimensions_991ea9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_991ea9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl
index 40f0380..e925a8a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9944d5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.dxc.hlsl
index d2610a3..904c64f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_9944d5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9944d5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.fxc.hlsl
index d2610a3..904c64f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_9944d5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9944d5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl
index 87daa8b..237953a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.spvasm
index 6587eea..f9fe13d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9944d5 "textureDimensions_9944d5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_9944d5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.wgsl
index c4d5366..3532ef8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9944d5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
 
 fn textureDimensions_9944d5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9944d5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl
index 2bbd80a..883761e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<bgra8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b10a0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl
index 42919bb..00fd595 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b10a0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b10a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl
index 42919bb..00fd595 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b10a0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b10a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl
index 1a7bb91..dfd9ef6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.spvasm
index 72421c8..e06c34c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9b10a0 "textureDimensions_9b10a0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_9b10a0 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.wgsl
index d27aa4f..c7d468d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b10a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureDimensions_9b10a0() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b10a0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl
index 118cda5..fd09965 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureDimensions(texture: texture_cube<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b223b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
index aef0f13..752f3c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b223b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b223b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
index aef0f13..752f3c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b223b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b223b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.glsl
index 8d3ff5f..d9b36d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_9b223b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_9b223b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.spvasm
index 35239d7..a1e5cde 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9b223b "textureDimensions_9b223b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_9b223b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.wgsl
index accf6a3..a439a97 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9b223b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureDimensions_9b223b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b223b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl
index c78e602..d887b43 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureDimensions(texture: texture_cube<u32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9baf27();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
index b32a99b..1c1c3cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9baf27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9baf27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
index b32a99b..1c1c3cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9baf27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9baf27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.glsl
index cffab09..8623625 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9baf27() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9baf27() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.spvasm
index 5dcf65e..6a384cd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9baf27 "textureDimensions_9baf27"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -75,7 +75,7 @@
 %textureDimensions_9baf27 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.wgsl
index bd16da9..2955c00 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9baf27.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureDimensions_9baf27() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9baf27();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl
index bafd006..c901103 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureDimensions(texture: texture_1d<u32>, level: u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9c7a00();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
index 9e3c698..88c98ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9c7a00() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9c7a00()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
index 9e3c698..88c98ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9c7a00() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9c7a00()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.glsl
index eb304a9..aef55ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_9c7a00() {
   uint res = uvec2(textureSize(arg_0_1, int(1u))).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_9c7a00() {
   uint res = uvec2(textureSize(arg_0_1, int(1u))).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.spvasm
index 548005c..63201d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9c7a00 "textureDimensions_9c7a00"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureDimensions_9c7a00 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %uint_1
                OpStore %res %22
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.wgsl
index 6414ad7..d03ace1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9c7a00.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureDimensions_9c7a00() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9c7a00();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl
index b09e4d3..9d3d070 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureDimensions(texture: texture_cube<u32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd4ca();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
index 8314512..0ff96ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9cd4ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9cd4ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
index 8314512..0ff96ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9cd4ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9cd4ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.glsl
index ecce733..41fae24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9cd4ca() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9cd4ca() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.spvasm
index 357e7cf..7f81afc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9cd4ca "textureDimensions_9cd4ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_9cd4ca = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.wgsl
index a891ef4..a5dccd1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd4ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureDimensions_9cd4ca() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd4ca();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl
index 12257f0..b7bc4f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd8ad();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
index 8687f94..c176f9c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_9cd8ad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_9cd8ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
index 8687f94..c176f9c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_9cd8ad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_9cd8ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.spvasm
index 2feb3ab..a5bbc9b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9cd8ad "textureDimensions_9cd8ad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_9cd8ad = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.wgsl
index e5a7e29..2503f36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9cd8ad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, write>;
 
 fn textureDimensions_9cd8ad() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd8ad();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl
index 1ef50b0..e03eab1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d0bac();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl
index 1b42e37..01486b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9d0bac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9d0bac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl
index 1b42e37..01486b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9d0bac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9d0bac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl
index c00d60c..b373375 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.spvasm
index d8b1a89..cd67eaa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9d0bac "textureDimensions_9d0bac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_9d0bac = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.wgsl
index f796866..fc609d8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d0bac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read>;
 
 fn textureDimensions_9d0bac() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d0bac();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl
index 4c6f85a..003d0bd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8snorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d68b8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl
index e7712c2..c454b3b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9d68b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9d68b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl
index e7712c2..c454b3b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9d68b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9d68b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl
index f669f7a..b81d88a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.spvasm
index 902cee6..b48b6f0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9d68b8 "textureDimensions_9d68b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_9d68b8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.wgsl
index 9119b63..25337a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9d68b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read>;
 
 fn textureDimensions_9d68b8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d68b8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl
index 3d91f99..b834457 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9dc27a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl
index 74ae3fc..81f3c2b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9dc27a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9dc27a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl
index 74ae3fc..81f3c2b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9dc27a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9dc27a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.spvasm
index 42e8f28..595da62 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9dc27a "textureDimensions_9dc27a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_9dc27a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.wgsl
index d6006e7..db83f24 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9dc27a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureDimensions_9dc27a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9dc27a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl
index b5a58c0..c560b64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureDimensions(texture: texture_2d_array<u32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9e0794();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
index 745944d..bf983ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9e0794() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9e0794()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
index 745944d..bf983ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9e0794() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9e0794()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.glsl
index b717470..449324b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_9e0794() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_9e0794() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.spvasm
index f3c9062..35af6af 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9e0794 "textureDimensions_9e0794"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_9e0794 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.wgsl
index 5076e80..2f1015d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9e0794.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureDimensions_9e0794() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9e0794();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl
index ddf22a9..80ef7ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureDimensions(texture: texture_depth_cube_array) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9fcc3b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
index d788dcc..a96ac7d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9fcc3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9fcc3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
index d788dcc..a96ac7d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9fcc3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9fcc3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.spvasm
index 8117b86..2431e38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9fcc3b "textureDimensions_9fcc3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_9fcc3b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.wgsl
index 995d390..489b0b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/9fcc3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureDimensions_9fcc3b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9fcc3b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl
index 81f9eae..9340273 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a105a5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.dxc.hlsl
index 8a52cb6..d2cc25a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a105a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a105a5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.fxc.hlsl
index 8a52cb6..d2cc25a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a105a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a105a5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.glsl
index 68a1922..a7ede47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_a105a5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_a105a5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.spvasm
index 7266160..395100f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a105a5 "textureDimensions_a105a5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_a105a5 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.wgsl
index eea6b65..2e56b76 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a105a5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
 
 fn textureDimensions_a105a5() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a105a5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl
index 376e0f2..8a8aed8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a14386();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.dxc.hlsl
index e74b745..5ab9a18 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_a14386() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a14386()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.fxc.hlsl
index e74b745..5ab9a18 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_a14386() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a14386()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.glsl
index 37943e0..f3dcd82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_a14386() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_a14386() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.spvasm
index 5101658..4519b86 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a14386 "textureDimensions_a14386"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_a14386 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.wgsl
index c502580..ec7daad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a14386.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
 
 fn textureDimensions_a14386() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a14386();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl
index a6e9c63..2285a61 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureDimensions(texture: texture_cube_array<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a1598a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
index ce8d913..ff0ec2a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a1598a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a1598a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
index ce8d913..ff0ec2a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a1598a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a1598a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.spvasm
index fbd517c..4f00d32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a1598a "textureDimensions_a1598a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_a1598a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.wgsl
index 6019484..1bcbcf28 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a1598a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureDimensions_a1598a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a1598a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl
index 114b7e5..8dc1e5f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r8unorm, write>) -> vec3<u32>
@@ -43,8 +46,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a20ba2();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl
index 056cc58..cd16e45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a20ba2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a20ba2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl
index 056cc58..cd16e45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a20ba2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a20ba2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.spvasm
index 7226ee5..6eac00f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a20ba2 "textureDimensions_a20ba2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_a20ba2 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.wgsl
index 3385fd5..cacb199 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a20ba2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, write>;
 
 fn textureDimensions_a20ba2() -> vec3<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a20ba2();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl
index 416084e..b544bff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8unorm, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a25d9b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl
index 5b28495..6f31d36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a25d9b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a25d9b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl
index 5b28495..6f31d36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a25d9b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a25d9b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl
index a359a59..31acaf2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.spvasm
index 3f76b58..63a631a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a25d9b "textureDimensions_a25d9b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_a25d9b = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.wgsl
index 54bf8b4..bfe4957 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a25d9b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read>;
 
 fn textureDimensions_a25d9b() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a25d9b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl
index 0f79785..7b85f55 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureDimensions(texture: texture_cube<i32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a2ba5e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
index b421469..c62ad6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a2ba5e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a2ba5e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
index b421469..c62ad6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a2ba5e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a2ba5e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.glsl
index 25d54a1..4f898de 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_a2ba5e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_a2ba5e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.spvasm
index c412747..1ac8dd7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a2ba5e "textureDimensions_a2ba5e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_a2ba5e = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %int_1
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.wgsl
index 713aa4b..43f9b05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a2ba5e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureDimensions_a2ba5e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a2ba5e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl
index 9ddb140..13f0371 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a3ea91();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl
index f536ed2..f61153f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a3ea91() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a3ea91()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl
index f536ed2..f61153f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a3ea91() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a3ea91()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl
index 7ac7d69..3f6f7a4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.spvasm
index 07ca8ad..c7673a1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a3ea91 "textureDimensions_a3ea91"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_a3ea91 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.wgsl
index 39ead80..783154a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a3ea91.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read>;
 
 fn textureDimensions_a3ea91() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a3ea91();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl
index 92e8d90..4ef533e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureDimensions(texture: texture_2d<i32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a48049();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl
index bab3690..9850e47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a48049() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a48049()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl
index bab3690..9850e47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a48049() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a48049()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.glsl
index 73207d0..ebf4f00 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_a48049() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_a48049() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.spvasm
index 6a64d5e..882965e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a48049 "textureDimensions_a48049"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_a48049 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %uint_1
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.wgsl
index 2a75c23..795220e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a48049.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureDimensions_a48049() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a48049();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl
index 236ea65..225fa03 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureDimensions(texture: texture_depth_2d_array) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a4cd56();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
index 4d17222..b94f26f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a4cd56() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a4cd56()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
index 4d17222..b94f26f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a4cd56() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a4cd56()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.glsl
index 1610652..5acd10d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_a4cd56() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_a4cd56() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.spvasm
index 3d9d5ff..d295828 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a4cd56 "textureDimensions_a4cd56"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_a4cd56 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.wgsl
index d878e53..d8d7d92 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a4cd56.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureDimensions_a4cd56() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a4cd56();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl
index c54d957..00e4127 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a65776();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.dxc.hlsl
index 49a3575..dbfe52c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a65776() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a65776()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.fxc.hlsl
index 49a3575..dbfe52c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a65776() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a65776()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl
index 47ed1ba..2b7dd5e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.spvasm
index 792ac59..3c1d303 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a65776 "textureDimensions_a65776"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_a65776 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.wgsl
index 685ee79..b3a90c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a65776.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read>;
 
 fn textureDimensions_a65776() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a65776();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl
index 4fb4691..771197f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8snorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a7ae4c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl
index 9908b1a..52e33bb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_a7ae4c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_a7ae4c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl
index 9908b1a..52e33bb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_a7ae4c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_a7ae4c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.glsl
index 59e3915..613bbe9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_a7ae4c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_a7ae4c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.spvasm
index d8f96aa..ac949ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a7ae4c "textureDimensions_a7ae4c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_a7ae4c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.wgsl
index cc643af..3178929 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/a7ae4c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
 
 fn textureDimensions_a7ae4c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a7ae4c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl
index 034b243..1fe16c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aa4353();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
index 5b38798..fa08e58 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_aa4353() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_aa4353()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
index 5b38798..fa08e58 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_aa4353() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_aa4353()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl
index 7ab6c18..449bd78 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.spvasm
index 7a79b78..5907428 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_aa4353 "textureDimensions_aa4353"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_aa4353 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.wgsl
index c075a28..628846b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aa4353.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, write>;
 
 fn textureDimensions_aa4353() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aa4353();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl
index 068352e..61508e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureDimensions(texture: texture_1d<f32>, level: u32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aac604();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl
index 4874107..33e30b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_aac604() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_aac604()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl
index 4874107..33e30b3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_aac604() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_aac604()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.glsl
index 623b017..35496ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_aac604() {
   uint res = uvec2(textureSize(arg_0_1, int(1u))).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_aac604() {
   uint res = uvec2(textureSize(arg_0_1, int(1u))).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.spvasm
index 050df68..aded530 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_aac604 "textureDimensions_aac604"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureDimensions_aac604 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %uint_1
                OpStore %res %22
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.wgsl
index ae0cc53..e22599f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/aac604.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureDimensions_aac604() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aac604();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl
index 29d5337..8aaa26d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ad7d3b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
index 45d54fe..733242e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ad7d3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ad7d3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
index 45d54fe..733242e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ad7d3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ad7d3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl
index 6efb560..ce8597f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.spvasm
index 622246f..6e22af0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ad7d3b "textureDimensions_ad7d3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_ad7d3b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.wgsl
index 7bf9f0a..8783fd9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ad7d3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, write>;
 
 fn textureDimensions_ad7d3b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ad7d3b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl
index 9382189..24d55a7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae4595();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.dxc.hlsl
index ffa363f..de96d59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ae4595() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ae4595()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.fxc.hlsl
index ffa363f..de96d59 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ae4595() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ae4595()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.spvasm
index 9b707a7..02fd501 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ae4595 "textureDimensions_ae4595"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_ae4595 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.wgsl
index 19499a1..cd2b759 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae4595.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
 
 fn textureDimensions_ae4595() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae4595();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl
index 7328074..7d3c643 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae75a7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl
index d63ae7e..3ac2867 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ae75a7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ae75a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl
index d63ae7e..3ac2867 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ae75a7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ae75a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.glsl
index 0dd2b10..621540c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ae75a7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ae75a7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.spvasm
index 2fe304e..61b0a0f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ae75a7 "textureDimensions_ae75a7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_ae75a7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.wgsl
index e3b4e71..1b86c06 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ae75a7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
 
 fn textureDimensions_ae75a7() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae75a7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl
index 7eae86e..df1adf1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_af46ab();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
index 8a79cad..a7eefe5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_af46ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_af46ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
index 8a79cad..a7eefe5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_af46ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_af46ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.spvasm
index d88b6377..0d2e02c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_af46ab "textureDimensions_af46ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -79,7 +79,7 @@
 %textureDimensions_af46ab = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.wgsl
index fba624d..9b70a32 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/af46ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureDimensions_af46ab() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_af46ab();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl
index 6465c72..279b1b1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b16352();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.dxc.hlsl
index 30d3948..17594e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b16352() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b16352()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.fxc.hlsl
index 30d3948..17594e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b16352() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b16352()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.glsl
index 21a6161..8d429e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b16352() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b16352() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.spvasm
index e1e1ce7..784e262 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b16352 "textureDimensions_b16352"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b16352 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.wgsl
index ae60012..d53921e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b16352.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
 
 fn textureDimensions_b16352() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b16352();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl
index 8158689..a9a9cd8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b284b8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.dxc.hlsl
index f5f119b..204b5d5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b284b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b284b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.fxc.hlsl
index f5f119b..204b5d5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b284b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b284b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.glsl
index a50f60c..07687c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b284b8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b284b8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.spvasm
index 1ff9f0c..60f7fda 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b284b8 "textureDimensions_b284b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b284b8 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.wgsl
index 03e360d..9dfe9f7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b284b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
 
 fn textureDimensions_b284b8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b284b8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl
index e5ee943..45c8898 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureDimensions(texture: texture_cube_array<f32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b3ab5e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
index e2ccff4..746c4e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b3ab5e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b3ab5e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
index e2ccff4..746c4e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b3ab5e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b3ab5e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.spvasm
index c4fb453..f73a0b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b3ab5e "textureDimensions_b3ab5e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_b3ab5e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.wgsl
index c10ccf3..2ca3987 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b3ab5e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureDimensions_b3ab5e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b3ab5e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl
index 9e917a7..a8270c8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureDimensions(texture: texture_1d<i32>, level: i32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b46d97();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
index 95857f1..e07b7a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b46d97() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b46d97()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
index 95857f1..e07b7a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b46d97() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b46d97()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.glsl
index 4b1e459..d715a9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_b46d97() {
   uint res = uvec2(textureSize(arg_0_1, 1)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_b46d97() {
   uint res = uvec2(textureSize(arg_0_1, 1)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.spvasm
index 2ccf5a8..30edf89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b46d97 "textureDimensions_b46d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureDimensions_b46d97 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %uint %24 %int_1
                OpStore %res %23
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.wgsl
index 4847ccd..e8f6c0d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b46d97.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureDimensions_b46d97() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b46d97();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl
index d1a2b98..3373e42 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b51345();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl
index 4f888a6..79815dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_b51345() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b51345()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl
index 4f888a6..79815dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_b51345() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b51345()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.spvasm
index e4e48d4..55789c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b51345 "textureDimensions_b51345"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_b51345 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.wgsl
index a735f3d..94c14d5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b51345.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, write>;
 
 fn textureDimensions_b51345() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b51345();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl
index 16ab593..9054789 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b56112();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.dxc.hlsl
index a5209b9..8d3d67c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b56112() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b56112()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.fxc.hlsl
index a5209b9..8d3d67c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b56112() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b56112()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl
index f7e084d..055d15c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.spvasm
index af31023..6524e82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b56112 "textureDimensions_b56112"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b56112 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.wgsl
index 8f8ec3d..4262ff7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b56112.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read>;
 
 fn textureDimensions_b56112() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b56112();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl
index b70f0bc..ddecc1a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5ba03();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl
index 55f85a3..1900231 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b5ba03() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b5ba03()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl
index 55f85a3..1900231 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b5ba03() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b5ba03()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl
index c6959a2..30291ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.spvasm
index 6ba9b16..bf4a6d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b5ba03 "textureDimensions_b5ba03"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b5ba03 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.wgsl
index 212f1fe..fc7c95c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5ba03.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read>;
 
 fn textureDimensions_b5ba03() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5ba03();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl
index 018a921..3f3168c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5d68e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl
index 90a390f..2fc112e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b5d68e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b5d68e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl
index 90a390f..2fc112e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b5d68e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b5d68e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.glsl
index d13e7b5..9302239 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_b5d68e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_b5d68e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.spvasm
index 1f5aa8a..44a042c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b5d68e "textureDimensions_b5d68e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_b5d68e = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.wgsl
index ca10716..fe0dc9f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b5d68e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureDimensions_b5d68e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5d68e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl
index 720bc99..6734234 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b6bbf4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl
index 4864daf..fa789dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_b6bbf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_b6bbf4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl
index 4864daf..fa789dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_b6bbf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_b6bbf4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl
index 2ccf33a..7ed86ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.spvasm
index 402ab99..6a6fd14 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b6bbf4 "textureDimensions_b6bbf4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b6bbf4 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.wgsl
index 1dedd3f..848d197 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b6bbf4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read>;
 
 fn textureDimensions_b6bbf4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b6bbf4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl
index 22fb142..755b846 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b8287f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.dxc.hlsl
index 7ed1371..7619e73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b8287f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b8287f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.fxc.hlsl
index 7ed1371..7619e73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b8287f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b8287f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl
index ddbf20e..24e9a2a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.spvasm
index 58aa65f..1b5dc73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b8287f "textureDimensions_b8287f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_b8287f = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.wgsl
index 984907c..d155b23 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b8287f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureDimensions_b8287f() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b8287f();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl
index 5ea02b2..5b15bbf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b9e7ef();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl
index 1637a11..3fad725 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b9e7ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b9e7ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl
index 1637a11..3fad725 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b9e7ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b9e7ef()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl
index e7c3ada..42ef8e1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.spvasm
index 824f653..83a659f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b9e7ef "textureDimensions_b9e7ef"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_b9e7ef = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.wgsl
index ddaa760..0d54252 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/b9e7ef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read>;
 
 fn textureDimensions_b9e7ef() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b9e7ef();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl
index 2ee7392..2dceef9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureDimensions(texture: texture_3d<f32>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bb95d9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
index 8fdb963..02489ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bb95d9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bb95d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
index 8fdb963..02489ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bb95d9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bb95d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.glsl
index 54d4730..3c60c39 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_bb95d9() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_bb95d9() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.spvasm
index 385cdcd..83a9624 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bb95d9 "textureDimensions_bb95d9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_bb95d9 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.wgsl
index e685c44..09ca1b5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bb95d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureDimensions_bb95d9() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bb95d9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl
index 4febcfa..fe8089d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bbe285();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
index e982eb5..0a9d467 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bbe285() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bbe285()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
index e982eb5..0a9d467 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bbe285() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bbe285()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl
index 923608d..c1c5c74 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.spvasm
index 7ae7c4a..457a547 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bbe285 "textureDimensions_bbe285"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_bbe285 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.wgsl
index 7a91c6a..ba0dfb0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bbe285.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureDimensions_bbe285() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bbe285();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl
index 53de9dc..892c5ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bc96f6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl
index 6fba9b1..d7d4062 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bc96f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bc96f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl
index 6fba9b1..d7d4062 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bc96f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bc96f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.glsl
index f489171..944898b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_bc96f6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_bc96f6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.spvasm
index be7339f..b923f47 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bc96f6 "textureDimensions_bc96f6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_bc96f6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.wgsl
index fa6f32f..877ef8a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bc96f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureDimensions_bc96f6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bc96f6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl
index b785531..dba7fc9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureDimensions(texture: texture_depth_cube_array, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bd94c8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
index dc09ca9..b1421d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_bd94c8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bd94c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
index dc09ca9..b1421d9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_bd94c8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bd94c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.spvasm
index c357636..d9c0bdc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bd94c8 "textureDimensions_bd94c8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureDimensions_bd94c8 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %uint_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.wgsl
index 65c02e9..e3084e3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bd94c8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureDimensions_bd94c8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bd94c8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl
index df2f060..0bfe554 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bec716();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.dxc.hlsl
index 8a55bbc..2979b41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bec716() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bec716()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.fxc.hlsl
index 8a55bbc..2979b41 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bec716() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bec716()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl
index ae15a5a..878cfab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.spvasm
index 751a9f1..294f9ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bec716 "textureDimensions_bec716"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_bec716 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.wgsl
index e4876b6..af67d36 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bec716.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read>;
 
 fn textureDimensions_bec716() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bec716();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl
index 326d50d..cd71a08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8snorm, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bf9170();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.dxc.hlsl
index 70a9f94..94e3408 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bf9170() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bf9170()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.fxc.hlsl
index 70a9f94..94e3408 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bf9170() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bf9170()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl
index b71400b..35a4297 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.spvasm
index 6c2f73b..0e458c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bf9170 "textureDimensions_bf9170"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_bf9170 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.wgsl
index f4f68ac..714d81f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/bf9170.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read>;
 
 fn textureDimensions_bf9170() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bf9170();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl
index 6caea5a..99181d4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1189e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.dxc.hlsl
index 0c0d8cf..60ef848 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c1189e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1189e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.fxc.hlsl
index 0c0d8cf..60ef848 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c1189e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1189e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl
index b383ee9..40f20bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.spvasm
index 82a91e6..94b4346 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c1189e "textureDimensions_c1189e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_c1189e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.wgsl
index 75947d5..4cf33ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1189e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureDimensions_c1189e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1189e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl
index 81f8509..4c489a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1dbf6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
index 4a3f8da..a572340 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c1dbf6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1dbf6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
index 4a3f8da..a572340 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c1dbf6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1dbf6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl
index da8ef19..5bd8cd7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.spvasm
index b805010..546c63d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c1dbf6 "textureDimensions_c1dbf6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c1dbf6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.wgsl
index a4d8eb8..6094740 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c1dbf6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, write>;
 
 fn textureDimensions_c1dbf6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1dbf6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl
index 1a04080..0e86254 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c27466();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.dxc.hlsl
index d70ce55..39a1ea3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c27466() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c27466()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.fxc.hlsl
index d70ce55..39a1ea3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c27466() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c27466()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.glsl
index 6e4bd34..311deac 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_c27466() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_c27466() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.spvasm
index e931f68..9248e91 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c27466 "textureDimensions_c27466"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c27466 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.wgsl
index 4835acf..6f66ad8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c27466.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
 
 fn textureDimensions_c27466() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c27466();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl
index e9beab1..a80c70f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c2cdd3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
index 9372bdb..3bc90cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c2cdd3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c2cdd3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
index 9372bdb..3bc90cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c2cdd3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c2cdd3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.glsl
index a0387eb..4104eaf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_c2cdd3() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_c2cdd3() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.spvasm
index 1fbe702..94b1aa4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c2cdd3 "textureDimensions_c2cdd3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_c2cdd3 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.wgsl
index 5c7b343..0c37cb1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c2cdd3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureDimensions_c2cdd3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c2cdd3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl
index 04dde37..2c676df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c44fc1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
index bc3439e..95f2fce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c44fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c44fc1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
index bc3439e..95f2fce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c44fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c44fc1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl
index 656bd2b..e4318e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.spvasm
index ff23cb5..36e1fc4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c44fc1 "textureDimensions_c44fc1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_c44fc1 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.wgsl
index 055252f..28524a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c44fc1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureDimensions_c44fc1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c44fc1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl
index c9f7ecc..a8a9cdc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureDimensions(texture: texture_depth_cube) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c5a36e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
index 93c587d..1e1112f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c5a36e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c5a36e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
index 93c587d..1e1112f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c5a36e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c5a36e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.glsl
index a0cdf58..e622e6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_c5a36e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_c5a36e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.spvasm
index 61e8300..251f6e5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c5a36e "textureDimensions_c5a36e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_c5a36e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.wgsl
index 0818250..4ba8f6e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c5a36e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureDimensions_c5a36e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c5a36e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl
index 4746cd2..a39d217 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b44c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl
index 79c0f65..e010f6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c6b44c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c6b44c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl
index 79c0f65..e010f6b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c6b44c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c6b44c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl
index 49668e3..0fc0164 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.spvasm
index 45916da..0a3c511 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c6b44c "textureDimensions_c6b44c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c6b44c = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.wgsl
index 3b65ffa..64f9fdd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b44c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
 
 fn textureDimensions_c6b44c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b44c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl
index b2d0a94..09253f6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r8unorm, read_write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b985();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.dxc.hlsl
index c45d87c..17e664f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c6b985() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c6b985()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.fxc.hlsl
index c45d87c..17e664f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c6b985() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c6b985()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.spvasm
index ce38051..f397148 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c6b985 "textureDimensions_c6b985"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c6b985 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.wgsl
index c6d84c7..31f6782 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c6b985.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read_write>;
 
 fn textureDimensions_c6b985() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b985();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl
index 26f1b394..f61966a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c7ea63();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl
index 094ac27..7582ec0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c7ea63() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c7ea63()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl
index 094ac27..7582ec0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c7ea63() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c7ea63()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.spvasm
index d8fd854..2cd93d0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c7ea63 "textureDimensions_c7ea63"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c7ea63 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.wgsl
index 859c201..40af09f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c7ea63.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
 
 fn textureDimensions_c7ea63() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c7ea63();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl
index c591f34..cc69ec3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c82420();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.dxc.hlsl
index d489640..62f5c66 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c82420() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c82420()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.fxc.hlsl
index d489640..62f5c66 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c82420() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c82420()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.spvasm
index fa17a6a..0fa923f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c82420 "textureDimensions_c82420"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c82420 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.wgsl
index 04ac8b7..59d1ffa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c82420.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
 
 fn textureDimensions_c82420() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c82420();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl
index b9dc3f3..ac6facf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureDimensions(texture: texture_3d<i32>, level: u32) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c871f3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
index a320075..947a441 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_c871f3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_c871f3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
index a320075..947a441 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_c871f3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_c871f3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.glsl
index beffbed..09d42a8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_c871f3() {
   uvec3 res = uvec3(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_c871f3() {
   uvec3 res = uvec3(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.spvasm
index 82ab6ac..cfd9105 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c871f3 "textureDimensions_c871f3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
@@ -76,7 +76,7 @@
 %textureDimensions_c871f3 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %25 %uint_1
                OpStore %res %24
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.wgsl
index f509fb3..2a9a34d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/c871f3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureDimensions_c871f3() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c871f3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl
index f8e58df..a6a77fd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ca10cc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl
index 9178c32..4d0fa48 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ca10cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ca10cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl
index 9178c32..4d0fa48 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ca10cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ca10cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.glsl
index 2e8d68d..bf2c1ec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_ca10cc() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_ca10cc() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.spvasm
index f8655a6..5aacfda 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ca10cc "textureDimensions_ca10cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_ca10cc = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.wgsl
index 3b93855..33cf4d2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ca10cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureDimensions_ca10cc() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ca10cc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl
index 85ea5e6..785aacf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cad3b7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
index d2c5a02..70863db 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_cad3b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cad3b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
index d2c5a02..70863db 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_cad3b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cad3b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl
index 60bad3d..baec589 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.spvasm
index e5a4b0a..f409e50 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cad3b7 "textureDimensions_cad3b7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_cad3b7 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.wgsl
index 53388d5..144b4ee 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cad3b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, write>;
 
 fn textureDimensions_cad3b7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cad3b7();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl
index 24aa0e4..86550e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8snorm, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cc947b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
index 445c176..9bd32ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_cc947b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_cc947b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
index 445c176..9bd32ed 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_cc947b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_cc947b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl
index 582a37c..e68bf29 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.spvasm
index f4eb9e2..3637fc5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cc947b "textureDimensions_cc947b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_cc947b = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.wgsl
index f5aa850..6510b1d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cc947b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, write>;
 
 fn textureDimensions_cc947b() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cc947b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl
index 34872d8..30060eb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cd3033();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.dxc.hlsl
index 5769061..8e9a0a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cd3033() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cd3033()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.fxc.hlsl
index 5769061..8e9a0a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cd3033() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cd3033()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.spvasm
index 99336ef..f76b56f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cd3033 "textureDimensions_cd3033"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -79,7 +79,7 @@
 %textureDimensions_cd3033 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.wgsl
index 5e73e07..e88beb9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cd3033.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureDimensions_cd3033() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cd3033();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl
index 3491e02..32a6201 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 
 // fn textureDimensions(texture: texture_external) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cdc6c9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
index b610d05..f649822 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
@@ -2,6 +2,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cdc6c9() {
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cdc6c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
index b610d05..f649822 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
@@ -2,6 +2,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cdc6c9() {
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cdc6c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl
index 0bb96d5..c6a869b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.glsl
@@ -59,15 +59,15 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 textureDimensions_cdc6c9() {
   uvec2 res = (ext_tex_params.inner.visibleSize + uvec2(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -140,15 +140,15 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 textureDimensions_cdc6c9() {
   uvec2 res = (ext_tex_params.inner.visibleSize + uvec2(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.spvasm
index 8d711e5..ea56e06 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.spvasm
@@ -45,10 +45,10 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cdc6c9 "textureDimensions_cdc6c9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -100,12 +100,12 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 2
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -133,10 +133,10 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
          %30 = OpTypeFunction %v2uint
      %uint_0 = OpConstant %uint 0
     %uint_16 = OpConstant %uint 16
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.wgsl
index 096744d..c260cb2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cdc6c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureDimensions_cdc6c9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cdc6c9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl
index eba76d4..16165ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cedabd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.dxc.hlsl
index 78ead58..19efd44 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_cedabd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_cedabd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.fxc.hlsl
index 78ead58..19efd44 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_cedabd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_cedabd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.spvasm
index a77c277..824f506 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cedabd "textureDimensions_cedabd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_cedabd = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.wgsl
index 413f80b..0daf4c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cedabd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read>;
 
 fn textureDimensions_cedabd() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cedabd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl
index e46a6ff..8cafc08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureDimensions(texture: texture_cube_array<f32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cf2b50();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
index 0b97098..e22b80f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cf2b50() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cf2b50()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
index 0b97098..e22b80f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cf2b50() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cf2b50()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.spvasm
index 16077e2..24e00e6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cf2b50 "textureDimensions_cf2b50"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureDimensions_cf2b50 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %uint_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.wgsl
index bd9db61..b1f54b2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/cf2b50.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureDimensions_cf2b50() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cf2b50();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl
index dd5c386..c8395d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d0778e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.dxc.hlsl
index ca5d8ac..a82982f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_d0778e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d0778e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.fxc.hlsl
index ca5d8ac..a82982f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_d0778e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d0778e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.spvasm
index f680ca8..864606c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d0778e "textureDimensions_d0778e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_d0778e = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.wgsl
index a10ba76..6b0416a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d0778e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read>;
 
 fn textureDimensions_d0778e() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d0778e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl
index b9dbe265..a83b90d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d08a94();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
index 31182b0..1a4dc69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_d08a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_d08a94()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
index 31182b0..1a4dc69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_d08a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_d08a94()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl
index 9cd4764..0b70605 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.spvasm
index ac45bef..faac3fc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d08a94 "textureDimensions_d08a94"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_d08a94 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.wgsl
index 888c538..21587a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d08a94.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, write>;
 
 fn textureDimensions_d08a94() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d08a94();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl
index 1fe56eb..ac63dca 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<bgra8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d1b882();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
index de29f86..6fbd81a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d1b882() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d1b882()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
index de29f86..6fbd81a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d1b882() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d1b882()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl
index 78480cb..e3e1b21 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.spvasm
index 23e91c7..a7c1bad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d1b882 "textureDimensions_d1b882"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_d1b882 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.wgsl
index 232b617..35851bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d1b882.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, write>;
 
 fn textureDimensions_d1b882() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d1b882();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl
index 2683c17..9f3cca3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureDimensions(texture: texture_depth_cube, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d3accd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
index 7bbdd4e..f13cd63 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d3accd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d3accd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
index 7bbdd4e..f13cd63 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d3accd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d3accd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.glsl
index b443acc..fd59781 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_d3accd() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_d3accd() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.spvasm
index 8371aa0..64363e7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d3accd "textureDimensions_d3accd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -75,7 +75,7 @@
 %textureDimensions_d3accd = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.wgsl
index 92f5085..46b4deb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d3accd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureDimensions_d3accd() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d3accd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl
index 52333f6..cbfbb5b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<bgra8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44ac3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl
index 64a92d2..d65c499 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44ac3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44ac3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl
index 64a92d2..d65c499 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44ac3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44ac3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl
index 76e1323..5211d3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.spvasm
index ce6e0d8..5dd91b7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d44ac3 "textureDimensions_d44ac3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d44ac3 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.wgsl
index 65cd17b..20bbad7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44ac3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read>;
 
 fn textureDimensions_d44ac3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44ac3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl
index 662404f..3d45215 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44dd1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl
index b3f51e1..d1b4179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44dd1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44dd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl
index b3f51e1..d1b4179 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44dd1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44dd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl
index ccbb3ae..732306e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.spvasm
index 8a0486a..6c9053f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d44dd1 "textureDimensions_d44dd1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d44dd1 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.wgsl
index 86898b6..f5ee851 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d44dd1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read>;
 
 fn textureDimensions_d44dd1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44dd1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl
index b44940f..18998c9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d63c28();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
index 412ee2d..08573f0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d63c28() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d63c28()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
index 412ee2d..08573f0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d63c28() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d63c28()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl
index dc81af5..a092a22 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.spvasm
index 4e0b61b..387b6d1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d63c28 "textureDimensions_d63c28"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_d63c28 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.wgsl
index 7808717..4e07a73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d63c28.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureDimensions_d63c28() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d63c28();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl
index a7a8b3a..b5e6d65 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d6f3cf();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl
index a033a2fc..6e0ef05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d6f3cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d6f3cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl
index a033a2fc..6e0ef05 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d6f3cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d6f3cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl
index 75f9761..78bf1a2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.spvasm
index 2fad971..c67d532 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d6f3cf "textureDimensions_d6f3cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_d6f3cf = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.wgsl
index d9cd7e2..da51e3a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d6f3cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read>;
 
 fn textureDimensions_d6f3cf() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d6f3cf();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl
index f27fc8d..b45dc7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8ba68();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
index 0e19753..92f51f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d8ba68() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d8ba68()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
index 0e19753..92f51f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d8ba68() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d8ba68()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl
index f6634dc..e5c6ae6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.spvasm
index 5d67022..f6ec29c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d8ba68 "textureDimensions_d8ba68"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d8ba68 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.wgsl
index ecf650c..ec7eff1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8ba68.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, write>;
 
 fn textureDimensions_d8ba68() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8ba68();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl
index 3b383f2..5c72c50 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8f887();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
index 1c167d6..a4b675c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_d8f887() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d8f887()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
index 1c167d6..a4b675c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_d8f887() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d8f887()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl
index 6cb4f4d..ea1b74d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.spvasm
index 92beeb2..4ad7a38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d8f887 "textureDimensions_d8f887"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d8f887 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.wgsl
index 489e016..e74ee37 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/d8f887.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, write>;
 
 fn textureDimensions_d8f887() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8f887();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl
index 84a0a55..06b12e2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_da30d2();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
index f27e22a..d216a4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_da30d2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_da30d2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
index f27e22a..d216a4f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_da30d2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_da30d2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl
index 8f00c5f..da5df70 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.spvasm
index 39e2fc5..a0e1107 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_da30d2 "textureDimensions_da30d2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_da30d2 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.wgsl
index 21783ce..7a6f0b9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/da30d2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, write>;
 
 fn textureDimensions_da30d2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_da30d2();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl
index 1538284..6ff1105 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_daf0fe();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl
index 171b8aa..5cee15a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_daf0fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_daf0fe()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl
index 171b8aa..5cee15a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_daf0fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_daf0fe()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl
index 12ce36e..ec79bfe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.spvasm
index 1add129..eb4a7a0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_daf0fe "textureDimensions_daf0fe"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_daf0fe = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.wgsl
index 3d53375..fe6dfd8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/daf0fe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureDimensions_daf0fe() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_daf0fe();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl
index d7fb3cc..a310869 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_db7131();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.dxc.hlsl
index 5958b23..bf5af1a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_db7131() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_db7131()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.fxc.hlsl
index 5958b23..bf5af1a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_db7131() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_db7131()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl
index 51a4f68..87a25ea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.spvasm
index 8d8f5ee..f87d214 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_db7131 "textureDimensions_db7131"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_db7131 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.wgsl
index 0800e9b..9a71b57 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/db7131.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read>;
 
 fn textureDimensions_db7131() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_db7131();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl
index 4a8977a..1c01bf9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dc83ce();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
index 5adb251..ce598df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dc83ce() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dc83ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
index 5adb251..ce598df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dc83ce() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dc83ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl
index 5c0deb4..89ed16c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.spvasm
index 207784e..211cc33 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_dc83ce "textureDimensions_dc83ce"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_dc83ce = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.wgsl
index 5b0091c..f517278 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dc83ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, write>;
 
 fn textureDimensions_dc83ce() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dc83ce();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl
index 834e373..32f659e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_de03c6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.dxc.hlsl
index 811e528..35e29cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_de03c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_de03c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.fxc.hlsl
index 811e528..35e29cf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_de03c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_de03c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl
index 8431c85..5ffdf7e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.spvasm
index c7be630..addf270 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_de03c6 "textureDimensions_de03c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_de03c6 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.wgsl
index 6882472..f1278c2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/de03c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read>;
 
 fn textureDimensions_de03c6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_de03c6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl
index e2c655a..6cc3380 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_deb3c0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl
index 37709b0..c6a682f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_deb3c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_deb3c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl
index 37709b0..c6a682f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_deb3c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_deb3c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.glsl
index 22d3c2f..fbf3278 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_deb3c0() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_deb3c0() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.spvasm
index 776cd7e..40d0f93 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_deb3c0 "textureDimensions_deb3c0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_deb3c0 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.wgsl
index a975fca..2cb5605 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/deb3c0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
 
 fn textureDimensions_deb3c0() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_deb3c0();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl
index 0e6c451..7e1378c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8snorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dee461();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl
index 5c25817..4f40180 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dee461() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dee461()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl
index 5c25817..4f40180 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dee461() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dee461()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl
index 03f60fc..6356eba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.spvasm
index 61e1ce8..c70dcb3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_dee461 "textureDimensions_dee461"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_dee461 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.wgsl
index abdc467..29e2608 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dee461.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, write>;
 
 fn textureDimensions_dee461() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dee461();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl
index 4354449..43aa706 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dfdc32();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
index 79b3ae7..249e7eb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_dfdc32() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dfdc32()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
index 79b3ae7..249e7eb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_dfdc32() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dfdc32()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.glsl
index 689da84..802bc69 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_dfdc32() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_dfdc32() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.spvasm
index ce0edb8..5fb770e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_dfdc32 "textureDimensions_dfdc32"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_dfdc32 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.wgsl
index ff4a515..82de84a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/dfdc32.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureDimensions_dfdc32() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dfdc32();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl
index f80c9cd..98895b8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8snorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e122fe();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
index d4191a2..6f7a4a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_e122fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_e122fe()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
index d4191a2..6f7a4a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_e122fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_e122fe()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl
index 1cb6a790..bee8367 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.spvasm
index 440015c..66ebe1d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e122fe "textureDimensions_e122fe"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_e122fe = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.wgsl
index 23f199c..78bf23f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e122fe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, write>;
 
 fn textureDimensions_e122fe() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e122fe();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl
index 24dab16..563cf4d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureDimensions(texture: texture_2d<u32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e18a8b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
index 88adc31..4568809 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e18a8b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e18a8b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
index 88adc31..4568809 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e18a8b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e18a8b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.glsl
index 9461e7f..5cda558 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_e18a8b() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_e18a8b() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.spvasm
index 4b5e8c4..7c93d87 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e18a8b "textureDimensions_e18a8b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -75,7 +75,7 @@
 %textureDimensions_e18a8b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.wgsl
index 6de37c5..22757a9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e18a8b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureDimensions_e18a8b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e18a8b();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl
index d2bef25..6f3ee34 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureDimensions(texture: texture_multisampled_2d<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4bfd2();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
index 3483f11..a5b5661 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4bfd2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4bfd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
index 3483f11..a5b5661 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4bfd2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4bfd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.glsl
index 3627cd0..907e828 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec2 textureDimensions_e4bfd2() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec2 textureDimensions_e4bfd2() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.spvasm
index ffc5e8e..b57a6aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e4bfd2 "textureDimensions_e4bfd2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_e4bfd2 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.wgsl
index 0b3368c..c465e7c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4bfd2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureDimensions_e4bfd2() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4bfd2();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl
index 2249189..65e4cdd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureDimensions(texture: texture_2d_array<i32>, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4e310();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
index 2c40120..893edd5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4e310() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4e310()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
index 2c40120..893edd5 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4e310() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4e310()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.glsl
index c46e29b..66b31cb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_e4e310() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_e4e310() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.spvasm
index 5ea4957..318762b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e4e310 "textureDimensions_e4e310"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureDimensions_e4e310 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %uint_1
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.wgsl
index f975396..9d6549c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4e310.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureDimensions_e4e310() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4e310();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl
index 1cd81da..218cbef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4f021();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.dxc.hlsl
index 048dbae..e0eaebd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e4f021() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4f021()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.fxc.hlsl
index 048dbae..e0eaebd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e4f021() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4f021()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.glsl
index c917911..13c68c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_e4f021() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_e4f021() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.spvasm
index 9c4bbac..6886d45 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e4f021 "textureDimensions_e4f021"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_e4f021 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.wgsl
index 2a34a71..609c570 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e4f021.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
 
 fn textureDimensions_e4f021() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4f021();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl
index 73f66e6..cf5e403 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e50eb8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl
index dadc5bc..0d2674e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e50eb8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e50eb8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl
index dadc5bc..0d2674e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e50eb8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e50eb8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.glsl
index 9f9c985..db726f1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e50eb8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e50eb8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.spvasm
index d25daf2..8da1759 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e50eb8 "textureDimensions_e50eb8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_e50eb8 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.wgsl
index f188107..9b2f04f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e50eb8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
 
 fn textureDimensions_e50eb8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e50eb8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl
index 935e408..6170c23 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureDimensions(texture: texture_3d<u32>, level: i32) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e5a203();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
index 3775029..a4a1285 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_e5a203() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e5a203()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
index 3775029..a4a1285 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_e5a203() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e5a203()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.glsl
index 6957d9d..2299c64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_e5a203() {
   uvec3 res = uvec3(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_e5a203() {
   uvec3 res = uvec3(textureSize(arg_0_1, 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.spvasm
index 744d459..cd210f8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e5a203 "textureDimensions_e5a203"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_e5a203 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.wgsl
index 17cf429..2a899a3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e5a203.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureDimensions_e5a203() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e5a203();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl
index 06b7825..1261aea 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e738f4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
index f4a4b7f..fca78b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_e738f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e738f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
index f4a4b7f..fca78b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_e738f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e738f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.spvasm
index 9593909..1f78e7a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e738f4 "textureDimensions_e738f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_e738f4 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.wgsl
index 8960edd..56d6ec1 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e738f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, write>;
 
 fn textureDimensions_e738f4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e738f4();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl
index 01b4666..5832b08 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e824b6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.dxc.hlsl
index a18e2c5..bb203dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e824b6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e824b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.fxc.hlsl
index a18e2c5..bb203dc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e824b6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e824b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.spvasm
index caa3f72..7e15b20 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e824b6 "textureDimensions_e824b6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_e824b6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.wgsl
index f316392..ec48367 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e824b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureDimensions_e824b6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e824b6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl
index 0d95258..42ccec9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e99308();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl
index 46c645d..e52ee7f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e99308() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e99308()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl
index 46c645d..e52ee7f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e99308() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e99308()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl
index cbf049f..2553cce 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.spvasm
index 5c54c18..a8ba59a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e99308 "textureDimensions_e99308"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_e99308 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.wgsl
index e8dc121..41c5023 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/e99308.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, write>;
 
 fn textureDimensions_e99308() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e99308();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl
index d0be869..0f0b292 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea066c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
index 4eeff36..7557522 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea066c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea066c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
index 4eeff36..7557522 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea066c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea066c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl
index 4a8543c..ae90f54 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.spvasm
index 156eb7d..c7484d0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ea066c "textureDimensions_ea066c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_ea066c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.wgsl
index da95e5d..2ccd292 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea066c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, write>;
 
 fn textureDimensions_ea066c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea066c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl
index fe136ab..0f3b0d7 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea25bc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
index 7e9ac6c..577a7f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea25bc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea25bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
index 7e9ac6c..577a7f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea25bc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea25bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.spvasm
index 38c2c0b..68487c4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ea25bc "textureDimensions_ea25bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_ea25bc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.wgsl
index ed9a2e3..9eeb696 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ea25bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, write>;
 
 fn textureDimensions_ea25bc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea25bc();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl
index 848c55c..2dc65b6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureDimensions(texture: texture_depth_2d_array, level: u32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eafe19();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
index eb53809..55a587d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_eafe19() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eafe19()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
index eb53809..55a587d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_eafe19() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eafe19()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.glsl
index fde9981..f12c8ad 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_eafe19() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_eafe19() {
   uvec2 res = uvec2(textureSize(arg_0_1, int(1u)).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.spvasm
index 47dc88e..4a7ccdf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eafe19 "textureDimensions_eafe19"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureDimensions_eafe19 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %uint_1
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.wgsl
index f6c8af7..65f8eca 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eafe19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureDimensions_eafe19() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eafe19();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl
index 32cb2f4..bd381f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb03b1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
index 5b68525..c83464e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb03b1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb03b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
index 5b68525..c83464e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb03b1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb03b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl
index 16c9f68..be18988 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.spvasm
index d38a788..e58c1f2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb03b1 "textureDimensions_eb03b1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_eb03b1 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.wgsl
index 8bb7abe..48ba66a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb03b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureDimensions_eb03b1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb03b1();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl
index c002f88..a2a34e8 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb10d6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl
index 24ad66d..828bedd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb10d6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb10d6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl
index 24ad66d..828bedd 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb10d6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb10d6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.glsl
index f76502e..2fc4d29 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_eb10d6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_eb10d6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.spvasm
index 5223a36..afbd938 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb10d6 "textureDimensions_eb10d6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_eb10d6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.wgsl
index a251da3..f33710b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb10d6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
 
 fn textureDimensions_eb10d6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb10d6();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl
index eec8e7d..51743ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb1249();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.dxc.hlsl
index 3734b2a..6dd5584 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_eb1249() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_eb1249()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.fxc.hlsl
index 3734b2a..6dd5584 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_eb1249() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_eb1249()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.glsl
index c852d5e..c669c99 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_eb1249() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_eb1249() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.spvasm
index ad61032..4face64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb1249 "textureDimensions_eb1249"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_eb1249 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.wgsl
index 4247ed2..9d30505 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb1249.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
 
 fn textureDimensions_eb1249() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb1249();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl
index 2398413..afd9a8f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb9f4d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl
index 53bf1e9..723c3ba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb9f4d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb9f4d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl
index 53bf1e9..723c3ba 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb9f4d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb9f4d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.glsl
index 81bb09d..0780fc6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_eb9f4d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_eb9f4d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.spvasm
index 8156166..74d15ef 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb9f4d "textureDimensions_eb9f4d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_eb9f4d = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.wgsl
index feb6a98..c11ceca 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/eb9f4d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureDimensions_eb9f4d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb9f4d();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl
index d06574b..cb6c737 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ed1030();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.dxc.hlsl
index ca87f4c..e786c76 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ed1030() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ed1030()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.fxc.hlsl
index ca87f4c..e786c76 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ed1030() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ed1030()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl
index 39e64af..e34acf2 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.spvasm
index ef9707d..710490c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ed1030 "textureDimensions_ed1030"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_ed1030 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.wgsl
index 9a57ad5..3badffa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ed1030.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
 
 fn textureDimensions_ed1030() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ed1030();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl
index 6ea2588..cf9f31d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ef2e58();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
index 1241c23..9318428 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ef2e58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ef2e58()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
index 1241c23..9318428 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ef2e58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ef2e58()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl
index bcdf801..570125e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.spvasm
index 316a268..2ee1d42 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ef2e58 "textureDimensions_ef2e58"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_ef2e58 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.wgsl
index ddf01c4..d1b9a72 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ef2e58.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, write>;
 
 fn textureDimensions_ef2e58() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ef2e58();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl
index 6dd6aa1..19472b4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureDimensions(texture: texture_1d<f32>, level: i32) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f17acd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
index 555aa98..ffb17f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_f17acd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f17acd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
index 555aa98..ffb17f9 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_f17acd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f17acd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.glsl
index 7ab45db..f7e63f3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_f17acd() {
   uint res = uvec2(textureSize(arg_0_1, 1)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_f17acd() {
   uint res = uvec2(textureSize(arg_0_1, 1)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.spvasm
index 0c4d12e..3c1798f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f17acd "textureDimensions_f17acd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureDimensions_f17acd = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %int_1
                OpStore %res %22
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.wgsl
index dce83da..518e9c3 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f17acd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureDimensions_f17acd() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f17acd();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl
index 66326fd..e5fd717 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f264a3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
index d1be7bb..a31cb64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f264a3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f264a3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
index d1be7bb..a31cb64 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f264a3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f264a3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.spvasm
index 1feac33..8a04c73 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f264a3 "textureDimensions_f264a3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_f264a3 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.wgsl
index f8075cf..da52517 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f264a3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, write>;
 
 fn textureDimensions_f264a3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f264a3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl
index 846a821..a02e0b0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f3a2ac();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
index f5a5f92..0f24deb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f3a2ac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f3a2ac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
index f5a5f92..0f24deb 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f3a2ac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f3a2ac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl
index b73f64e..33bc9ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.spvasm
index 9f226b3..e68ff89 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f3a2ac "textureDimensions_f3a2ac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_f3a2ac = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.wgsl
index cef2c19e..ba8b931 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f3a2ac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, write>;
 
 fn textureDimensions_f3a2ac() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f3a2ac();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl
index 6f0a2b3..e273387 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f406ff();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.dxc.hlsl
index 5b192f9..85c2111 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f406ff() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f406ff()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.fxc.hlsl
index 5b192f9..85c2111 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f406ff() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f406ff()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.glsl
index 73ef73f..690c572 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_f406ff() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_f406ff() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.spvasm
index 3478e1a..9f8bf82 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f406ff "textureDimensions_f406ff"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_f406ff = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.wgsl
index 499d03d..dbd1c84 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f406ff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
 
 fn textureDimensions_f406ff() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f406ff();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl
index 0056919..043f299 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4321c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.dxc.hlsl
index 29bcef3..5509351 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_f4321c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f4321c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.fxc.hlsl
index 29bcef3..5509351 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_f4321c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f4321c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl
index b569bca..dca1a94 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.spvasm
index 885df1b..1fcc689 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f4321c "textureDimensions_f4321c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_f4321c = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.wgsl
index b8f0b9b..2c69b3d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4321c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read>;
 
 fn textureDimensions_f4321c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4321c();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl
index e06b477..3da65ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f48886();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.dxc.hlsl
index b9f9b60..a4fb37a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f48886() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f48886()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.fxc.hlsl
index b9f9b60..a4fb37a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f48886() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f48886()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl
index e19d416..9ed7071 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.spvasm
index 1cd24ce..3de0167 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f48886 "textureDimensions_f48886"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_f48886 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.wgsl
index a7612b4..1722f0e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f48886.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read>;
 
 fn textureDimensions_f48886() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f48886();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl
index a2926f7..5db9f9e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4e469();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
index ef2c13e..ec576fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f4e469() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f4e469()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
index ef2c13e..ec576fe 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f4e469() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f4e469()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl
index 593a21c..f4d43bf 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.spvasm
index 362d6b6..d3ef6c0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f4e469 "textureDimensions_f4e469"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_f4e469 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.wgsl
index 1f9d68a..8ade4fc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f4e469.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, write>;
 
 fn textureDimensions_f4e469() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4e469();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl
index 4f9e3dd..4bf8e8c 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8snorm, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f55a94();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.dxc.hlsl
index b40b0c2..29fab8a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f55a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f55a94()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.fxc.hlsl
index b40b0c2..29fab8a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f55a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f55a94()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.glsl
index 2996970..b69b53f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f55a94() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f55a94() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.spvasm
index 75c6a6f..0e53390 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f55a94 "textureDimensions_f55a94"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_f55a94 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.wgsl
index f75ba84..e0c9a38 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f55a94.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
 
 fn textureDimensions_f55a94() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f55a94();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl
index 70043fb..3d2f276 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureDimensions(texture: texture_cube<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f626b3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
index 3839781..ae857c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f626b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f626b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
index 3839781..ae857c6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f626b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f626b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.glsl
index b1cd522..58120ae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_f626b3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_f626b3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.spvasm
index 543a932..616b876 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f626b3 "textureDimensions_f626b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_f626b3 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %int_0
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.wgsl
index c27b05a..d2e4091 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f626b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureDimensions_f626b3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f626b3();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl
index 2963e50..23a3ff6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f7bac5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl
index c79f113..db86f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f7bac5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f7bac5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl
index c79f113..db86f5d 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f7bac5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f7bac5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl
index 90a50f2..81b6a01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.spvasm
index 3fd04d6..02f07ff 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f7bac5 "textureDimensions_f7bac5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_f7bac5 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.wgsl
index 3447353..f3bd8ab 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f7bac5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureDimensions_f7bac5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f7bac5();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl
index 9c548f7..a30ccfc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureDimensions(texture: texture_2d<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f8522e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
index 1f65e99..749d1df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f8522e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f8522e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
index 1f65e99..749d1df 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f8522e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f8522e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.glsl
index 06b22af..0e00eae 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_f8522e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_f8522e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.spvasm
index 8c8c3af..d54d5fc 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f8522e "textureDimensions_f8522e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_f8522e = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %int_0
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.wgsl
index e74a234..be90fec 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f8522e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureDimensions_f8522e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f8522e();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl
index 5f67c02..c5642d0 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f93ece();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.dxc.hlsl
index e1431dd..97f6289 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f93ece() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f93ece()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.fxc.hlsl
index e1431dd..97f6289 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f93ece() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f93ece()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.glsl
index 60f10ec..b76238e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f93ece() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f93ece() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.spvasm
index ce54533..bf4426e 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f93ece "textureDimensions_f93ece"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_f93ece = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.wgsl
index 478c081..067b576 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f93ece.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
 
 fn textureDimensions_f93ece() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f93ece();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl
index 4c4c621..e585621 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f94e55();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.dxc.hlsl
index 88d75f0..6f24138 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f94e55() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f94e55()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.fxc.hlsl
index 88d75f0..6f24138 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f94e55() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f94e55()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.spvasm
index 795d6e5..0078335 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f94e55 "textureDimensions_f94e55"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_f94e55 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.wgsl
index ff56a80..4d6f82b 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/f94e55.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
 
 fn textureDimensions_f94e55() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f94e55();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl
index 7d263d8..f607685 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<bgra8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fbb15a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
index 1abecd5..c4314e6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_fbb15a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fbb15a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
index 1abecd5..c4314e6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_fbb15a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fbb15a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl
index 7d167ec..874b965 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.spvasm
index 5083941..d8d888f 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_fbb15a "textureDimensions_fbb15a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_fbb15a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.wgsl
index f68c163..36a6572 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fbb15a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, write>;
 
 fn textureDimensions_fbb15a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fbb15a();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl
index a2550f6..19e97e4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r8unorm, read>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdbae8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl
index cc4fec2..3f8f484 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_fdbae8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_fdbae8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl
index cc4fec2..3f8f484 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_fdbae8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_fdbae8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.spvasm
index 5c28360..265ee6a 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_fdbae8 "textureDimensions_fdbae8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_fdbae8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.wgsl
index 08e2f05..82b82a6 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdbae8.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read>;
 
 fn textureDimensions_fdbae8() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdbae8();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl
index d4feced..e6383f4 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureDimensions(texture: texture_2d_array<i32>, level: i32) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdf6e9();
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
index d684dd4..1aed181 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_fdf6e9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fdf6e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
index d684dd4..1aed181 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_fdf6e9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fdf6e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.glsl
index 208c93b..f47b1aa 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_fdf6e9() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_fdf6e9() {
   uvec2 res = uvec2(textureSize(arg_0_1, 1).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.spvasm
index 8cdd452..b235a01 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_fdf6e9 "textureDimensions_fdf6e9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureDimensions_fdf6e9 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %int_1
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.wgsl
index b833781..23ca279 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/fdf6e9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureDimensions_fdf6e9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdf6e9();
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl
index f90483b..80d4aac 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_0166ec();
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl
index e9f74de..9f8a7fc 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl
index e9f74de..9f8a7fc 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl
index 4d2327c..db5f975 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_0166ec() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_0166ec() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm
index e394926..7382dcd 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_0166ec "textureGather_0166ec"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureGather_0166ec = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4int %30 %33 %uint_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl
index 7542672..dda6880 100644
--- a/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/0166ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_0166ec();
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
index c76b3c5..9b9fd7e 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_04fa78();
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl
index 60dfa39..703e5e7 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl
index 60dfa39..703e5e7 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm
index 678281b..b1d2ee0 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_04fa78 "textureGather_04fa78"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -85,8 +85,8 @@
 %textureGather_04fa78 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl
index 38df804..37bb108 100644
--- a/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/04fa78.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_04fa78();
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl
index 823f65e..e6b4cd6 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_10c554();
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl
index abb6a33..1efbd84 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_10c554()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl
index abb6a33..1efbd84 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_10c554()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl
index a8829a5..812de73 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGather_10c554() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGather_10c554() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm
index 2c182cc..7554f5e 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_10c554 "textureGather_10c554"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureGather_10c554 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %int_0
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl
index 86d71d8..ca07f9b 100644
--- a/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/10c554.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_10c554();
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl
index 595fe47..cad51f3 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_11b2db();
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl
index ddec590..0636c10 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl
index ddec590..0636c10 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl
index b3e4b4e..d8f3155 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_11b2db() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_11b2db() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm
index 7028206..e0c92be 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_11b2db "textureGather_11b2db"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureGather_11b2db = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %uint_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl
index 1c2b088..ff7a8e5 100644
--- a/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/11b2db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_11b2db();
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl
index c0dfdf0..15cb9f6 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_17baac();
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl
index 1448dfe..6ef124f 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_17baac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl
index 1448dfe..6ef124f 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_17baac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl
index a5f6bdc..429f18c 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_17baac() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_17baac() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm
index 1310f1d..0302150 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_17baac "textureGather_17baac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureGather_17baac = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl
index b1d9818..c41aac3 100644
--- a/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/17baac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_17baac();
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl
index 30cd3f4..a27e2de 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1bf0ab();
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
index 9fb431a..edd340a 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1bf0ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
index 9fb431a..edd340a 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1bf0ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl
index 7cd8265..7b5a0e6 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_1bf0ab() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_1bf0ab() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm
index 8caab65..52fe8a3 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_1bf0ab "textureGather_1bf0ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGather_1bf0ab = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl
index 2169f52..b69c66f 100644
--- a/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1bf0ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1bf0ab();
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl
index 2f6da1e..911e337 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1f7f6b();
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
index 09e6dfd..21282fd 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
index 09e6dfd..21282fd 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl
index 0e00a5c..67b401b 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_1f7f6b() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_1f7f6b() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm
index c1672ae..d7fb49e 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_1f7f6b "textureGather_1f7f6b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureGather_1f7f6b = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %int_0 ConstOffset %34
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl
index 5344c11..a31d5d6 100644
--- a/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/1f7f6b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1f7f6b();
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl
index 9e66ae8..afeb58e 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_22e930();
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl
index f85111e..ca6d894 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_22e930()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl
index f85111e..ca6d894 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_22e930()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl
index fc0c4c0..c8a65c0 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_22e930() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_22e930() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm
index 4cf1738..d445383 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_22e930 "textureGather_22e930"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureGather_22e930 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl
index ee0529f..1b02356 100644
--- a/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/22e930.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_22e930();
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl
index 5e19beb..2ee3234 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_238ec4();
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl
index 397ed3b..311e912 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl
index 397ed3b..311e912 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl
index d7a2cbf..b3218b5 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_238ec4() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_238ec4() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm
index 4afa3c1..6edf1f9 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_238ec4 "textureGather_238ec4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGather_238ec4 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl
index 4d197c9..23c53c9 100644
--- a/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/238ec4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_238ec4();
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl
index 8e26d1c..51eed05 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_24b0bd();
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl
index 1c10694..8970b0b 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl
index 1c10694..8970b0b 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl
index e0a19d3..f9627bc 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_24b0bd() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_24b0bd() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm
index 13a5e05..1d28935 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_24b0bd "textureGather_24b0bd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureGather_24b0bd = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl
index 3a68694..bcedb51 100644
--- a/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/24b0bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_24b0bd();
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl
index 2b31e51..ae203d9 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_269250();
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl
index cd63d45..dc601c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_269250()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl
index cd63d45..dc601c6 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_269250()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl
index d9be73d..55ca5b8 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_269250() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_269250() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm
index 22cbcf4..10ccb95 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_269250 "textureGather_269250"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureGather_269250 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl
index 555bb1e..027ae83 100644
--- a/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/269250.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_269250();
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl
index e052861..67f2f91 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2a4f40();
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl
index f00d782..53b4d8b 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl
index f00d782..53b4d8b 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl
index 15c9984..e395a77 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_2a4f40() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_2a4f40() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm
index 2d64955..223daf8 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_2a4f40 "textureGather_2a4f40"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureGather_2a4f40 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl
index b793728..b69afe8 100644
--- a/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2a4f40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2a4f40();
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl
index 52a8f02..30e89e9 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2cc066();
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl
index a1b07a6..563b354 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2cc066()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl
index a1b07a6..563b354 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2cc066()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl
index ec2e405..ffd12be 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_2cc066() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_2cc066() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm
index d4354ff..36bf0b1 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_2cc066 "textureGather_2cc066"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureGather_2cc066 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl
index e5a24ce..b9718d6 100644
--- a/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2cc066.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2cc066();
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl
index 0b8e06e..418f300 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2e0ed5();
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
index 1a9dd41..807f22b 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
index 1a9dd41..807f22b 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl
index 0bc2a74..865efe9 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_2e0ed5() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_2e0ed5() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm
index fb7d54f..f2380bd 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_2e0ed5 "textureGather_2e0ed5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureGather_2e0ed5 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %int_0
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl
index d668141..439f51b 100644
--- a/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/2e0ed5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2e0ed5();
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl
index ebbb977..fa0d285 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_32c4e8();
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl
index a0a8485..d0df735 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl
index a0a8485..d0df735 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl
index 04584ef..f9df302 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_32c4e8() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_32c4e8() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm
index e0851ab..f5e6d90 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_32c4e8 "textureGather_32c4e8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureGather_32c4e8 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %int_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl
index 45c25de..db23292 100644
--- a/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/32c4e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_32c4e8();
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl
index 8b1dedf..0120ee9 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_3b32cc();
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl
index 56430b5..83721e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_3b32cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl
index 56430b5..83721e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_3b32cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl
index ea2f968..ec43065 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_3b32cc() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_3b32cc() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm
index 3e1683a..76a2506 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_3b32cc "textureGather_3b32cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -85,8 +85,8 @@
 %textureGather_3b32cc = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4uint %30 %33 %int_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl
index b68b007..5ff8921 100644
--- a/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/3b32cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_3b32cc();
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
index 0151222..adb743e 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_43025d();
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl
index 66e30dc..9e2aaf3 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_43025d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl
index 66e30dc..9e2aaf3 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_43025d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm
index e531b18..52112a2 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_43025d "textureGather_43025d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureGather_43025d = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl
index 738aa15..e119c60 100644
--- a/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/43025d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_43025d();
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl
index 13a0ea3..f2ff8f5 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_445793();
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl
index 3a097b6..150eba4 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_445793()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl
index 3a097b6..150eba4 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_445793()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl
index c3b0ef7..5ee97e9 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_445793() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_445793() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm
index 9d30f8e..a077da4 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_445793 "textureGather_445793"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureGather_445793 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl
index cb618af..567896b 100644
--- a/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/445793.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_445793();
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl
index 793394a..f0613d0 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_49b07f();
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl
index a86c546..76717fc 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_49b07f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl
index a86c546..76717fc 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_49b07f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl
index abe7ce1..5b4885f 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_49b07f() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_49b07f() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm
index b608867..8e282d2 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_49b07f "textureGather_49b07f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -87,8 +87,8 @@
 %textureGather_49b07f = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4uint %30 %33 %int_1 ConstOffset %37
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl
index cadaa19..b429a18 100644
--- a/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/49b07f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_49b07f();
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl
index 482e018..17acaae 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4b8103();
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl
index 15a87c9..fd855de 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl
index 15a87c9..fd855de 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl
index 66b602b..606c832 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_4b8103() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_4b8103() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm
index e874f94..cb4d65f3 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_4b8103 "textureGather_4b8103"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGather_4b8103 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl
index e6f588e..aa1100e 100644
--- a/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4b8103.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4b8103();
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl
index 6621c00..636d836 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4e8ac5();
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
index 6b9ad12..62e4505 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
index 6b9ad12..62e4505 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl
index 24ec06d..08ac1a4 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_4e8ac5() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_4e8ac5() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm
index f1b7e9e..4d5eb96 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_4e8ac5 "textureGather_4e8ac5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureGather_4e8ac5 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl
index a9f9b3c..8aa520a 100644
--- a/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/4e8ac5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4e8ac5();
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl
index 0ff69fc..ddda554 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5266da();
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl
index 5fa732c..fc02d7c 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5266da()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl
index 5fa732c..fc02d7c 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5266da()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl
index faaf3c8..e252ade 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_5266da() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_5266da() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm
index 2b62522..dfc38db 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_5266da "textureGather_5266da"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureGather_5266da = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %int_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl
index 83a9a80..7fd4d48 100644
--- a/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5266da.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5266da();
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl
index 0e1f120..c44d68b 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_59372a();
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl
index f3fd8ac..7fcb18f 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_59372a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl
index f3fd8ac..7fcb18f 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_59372a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl
index ef933fb..4952d66 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_59372a() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_59372a() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm
index 13cf7a8..2b38a5f 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_59372a "textureGather_59372a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGather_59372a = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl
index 7e949e4..ff405fd 100644
--- a/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/59372a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_59372a();
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl
index 0bf0f2c..9ac1656 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5ba85f();
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl
index ae0779d..5fe47c3 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl
index ae0779d..5fe47c3 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl
index fca8dc2..3ea0b00 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_5ba85f() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_5ba85f() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm
index e218602..13fd99f 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_5ba85f "textureGather_5ba85f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -85,8 +85,8 @@
 %textureGather_5ba85f = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4int %30 %33 %int_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl
index 45a9b04..e98d42a 100644
--- a/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5ba85f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5ba85f();
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl
index 8a7b8b8..8def5c7 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5bd491();
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl
index 5917a98..39b2e15 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5bd491()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl
index 5917a98..39b2e15 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5bd491()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl
index 5761626..08b247b 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_5bd491() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_5bd491() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm
index 14771e3..77467ab 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_5bd491 "textureGather_5bd491"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -85,8 +85,8 @@
 %textureGather_5bd491 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4uint %30 %33 %int_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl
index 8f84c73..121b25a 100644
--- a/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/5bd491.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5bd491();
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl
index c0efe22..d2c86ed 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_6b7b74();
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl
index 8f8f364..dcbc68f 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_6b7b74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl
index 8f8f364..dcbc68f 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_6b7b74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl
index 69dda27..a00b217 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_6b7b74() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_6b7b74() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm
index 568bb5c..294e959 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_6b7b74 "textureGather_6b7b74"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_6b7b74 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl
index 3474042..807cb2c 100644
--- a/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/6b7b74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_6b7b74();
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
index 93d7627..6362961 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_751f8a();
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl
index 87cd283..78be226 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl
index 87cd283..78be226 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm
index e060eb7..66f18af 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_751f8a "textureGather_751f8a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureGather_751f8a = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl
index e0f1a7d..38d74e1 100644
--- a/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/751f8a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_751f8a();
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl
index e9410d0..249f26d 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_788010();
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl
index 078ce77..b2bc844 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_788010()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl
index 078ce77..b2bc844 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_788010()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm
index d1b040b..7fc5ee9 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_788010 "textureGather_788010"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -86,8 +86,8 @@
 %textureGather_788010 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl
index ba4b889..06cc151 100644
--- a/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/788010.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_788010();
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl
index 01e8947..fb20a45 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7c3828();
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl
index 0127317..0150fb2 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl
index 0127317..0150fb2 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl
index 0ad269f..6b4ee3b 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_7c3828() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_7c3828() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm
index 7988d3d..2c888ad 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_7c3828 "textureGather_7c3828"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -87,8 +87,8 @@
 %textureGather_7c3828 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4int %30 %33 %int_1 ConstOffset %36
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl
index 3c79aaa..ffa99e8 100644
--- a/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7c3828.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7c3828();
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
index fa6a713..c20b020 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7dd226();
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl
index 0dd6111..984dd7a 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl
index 0dd6111..984dd7a 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm
index cdf0203..2d8750b 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_7dd226 "textureGather_7dd226"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureGather_7dd226 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl
index 4da0aa6..fe3869c 100644
--- a/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/7dd226.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7dd226();
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl
index c4ea76a..c4018e30 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_829357();
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl
index 1c2a99a..a6fbf2d 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_829357()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl
index 1c2a99a..a6fbf2d 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_829357()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm
index 36503b0..4db29a1 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_829357 "textureGather_829357"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureGather_829357 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl
index bef956d..bcf198a 100644
--- a/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/829357.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_829357();
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl
index 9eeee4a..434af35 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_831549();
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl
index 7f29605..7255d0f 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_831549()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl
index 7f29605..7255d0f 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_831549()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl
index ed49234..15c090a 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_831549() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_831549() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm
index dbe9534..a57bfc3 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_831549 "textureGather_831549"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGather_831549 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl
index cbeeafc..ad180c0 100644
--- a/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/831549.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_831549();
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
index 3482740..929d125 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8578bc();
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl
index b1d5af1..6faae65 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl
index b1d5af1..6faae65 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm
index 9f96fea..3cb8638 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_8578bc "textureGather_8578bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -80,8 +80,8 @@
 %textureGather_8578bc = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl
index de95a5e..5b8dc1e 100644
--- a/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8578bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8578bc();
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl
index c255ab0..49a39ea 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_89680f();
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl
index 7eca42f..e1fb883 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_89680f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl
index 7eca42f..e1fb883 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_89680f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl
index 6cc9a23..63f06e4 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_89680f() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_89680f() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm
index 67a91c2..11e3544 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_89680f "textureGather_89680f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureGather_89680f = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4uint %30 %33 %uint_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl
index d908dc4..177efed 100644
--- a/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/89680f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_89680f();
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl
index b38858c..11cbec4 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8b754c();
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl
index 63e9b6b..fed1277 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl
index 63e9b6b..fed1277 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl
index daad6ff..c1980c3 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_8b754c() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_8b754c() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm
index 532f9eb..a1558de 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_8b754c "textureGather_8b754c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureGather_8b754c = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl
index b1ec3f9..aba406d 100644
--- a/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8b754c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8b754c();
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl
index 2157668..bd11b59 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8fae00();
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl
index 91294e0..c59bf34 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8fae00()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl
index 91294e0..c59bf34 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8fae00()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl
index d571810..1e2310e 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_8fae00() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_8fae00() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm
index a83bafd..cda0212 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_8fae00 "textureGather_8fae00"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureGather_8fae00 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4uint %30 %33 %uint_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl
index 52fea05..2be6523 100644
--- a/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/8fae00.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8fae00();
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl
index 61f6076..332aea0 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_92ea47();
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl
index 1494fec..d80a74c 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_92ea47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl
index 1494fec..d80a74c 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_92ea47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl
index b65d299..37eeae8 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_92ea47() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_92ea47() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm
index 259a2e2..d69bcbd 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_92ea47 "textureGather_92ea47"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureGather_92ea47 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl
index 6c1004f..44fd2c1 100644
--- a/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/92ea47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_92ea47();
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl
index 30c0d6b..7488411 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_986700();
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl
index 0236ab9..5b59b13 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_986700()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl
index 0236ab9..5b59b13 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_986700()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl
index 238f7d2..b6504c4 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_986700() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_986700() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm
index 5fa15e5..ca54b96 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_986700 "textureGather_986700"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -87,8 +87,8 @@
 %textureGather_986700 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4uint %30 %33 %uint_1 ConstOffset %38
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl
index 582adc2..84a7b25 100644
--- a/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/986700.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_986700();
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl
index 485c8b4..775e393 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9a6358();
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl
index 97ed939..d04d2bf 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl
index 97ed939..d04d2bf 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl
index bd5494d..1499512 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_9a6358() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_9a6358() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm
index 8fff366..49095f6 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_9a6358 "textureGather_9a6358"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -83,8 +83,8 @@
 %textureGather_9a6358 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl
index 23bef7c..9c23764 100644
--- a/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9a6358.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9a6358();
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl
index 2f450bc..9bd3387 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9ab41e();
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl
index 81416a0..3ec8541 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl
index 81416a0..3ec8541 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl
index ec37655..00c63b9 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_9ab41e() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_9ab41e() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm
index 129f205..133b9ec 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_9ab41e "textureGather_9ab41e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_9ab41e = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl
index 9c7aff0..dd7bc47 100644
--- a/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/9ab41e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9ab41e();
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl
index c1f7341..369f2af 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a0372b();
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl
index 7cb0b71..8f9a0e9 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a0372b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl
index 7cb0b71..8f9a0e9 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a0372b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl
index a3e2497..d7ccd8c 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_a0372b() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_a0372b() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm
index c173c57..eb8a1fb 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_a0372b "textureGather_a0372b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureGather_a0372b = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl
index 7636a22..f15a99a 100644
--- a/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a0372b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a0372b();
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl
index d995f89..6d1e9b0 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a68027();
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl
index 289e80b..69eaeed 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a68027()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl
index 289e80b..69eaeed 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a68027()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl
index 2c669d3..5642404 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_a68027() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_a68027() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm
index cb3609f..c820e72 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_a68027 "textureGather_a68027"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureGather_a68027 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl
index f36b61c..46a2fd6 100644
--- a/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/a68027.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a68027();
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
index 38aadf1..2692819 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_aaf6bd();
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
index 0a0e4de..3191681 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
index 0a0e4de..3191681 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm
index faaee05..8399b2be 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_aaf6bd "textureGather_aaf6bd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -86,8 +86,8 @@
 %textureGather_aaf6bd = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl
index 371b800..d02aeae 100644
--- a/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/aaf6bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_aaf6bd();
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl
index 315f897..e3db6bb 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_af55b3();
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl
index 8df4dfb..56f0f11 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl
index 8df4dfb..56f0f11 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl
index 43f4127..f247d83 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_af55b3() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_af55b3() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm
index c2e72be..b90d7e0 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_af55b3 "textureGather_af55b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureGather_af55b3 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %int_1 ConstOffset %33
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl
index fa9e39c..a16d208 100644
--- a/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/af55b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_af55b3();
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl
index b712708..1962ad3 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bb3ac5();
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
index 93f0ce8..904c82d 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
index 93f0ce8..904c82d 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl
index 76f6559..af61c5d 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_bb3ac5() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_bb3ac5() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm
index 4f23d7e..0452dd0 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_bb3ac5 "textureGather_bb3ac5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -85,8 +85,8 @@
 %textureGather_bb3ac5 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4int %30 %33 %int_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl
index f45587a..ee14bc3 100644
--- a/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bb3ac5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bb3ac5();
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl
index 1959d74..f8d172e 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bd33b6();
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl
index 6cb34e6..e66376b 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl
index 6cb34e6..e66376b 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl
index b1a147a..d5f7fe5 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_bd33b6() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_bd33b6() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm
index 2548a0e..1a6049b 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_bd33b6 "textureGather_bd33b6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_bd33b6 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl
index e2c6bb4..f057be8 100644
--- a/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/bd33b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bd33b6();
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
index 0ce9e83..661934d 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_be276f();
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl
index a3d675d..3c7cebd 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_be276f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl
index a3d675d..3c7cebd 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_be276f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm
index d5dc586..16fa30b 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_be276f "textureGather_be276f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -86,8 +86,8 @@
 %textureGather_be276f = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl
index 9f893e5..452ebe3 100644
--- a/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/be276f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_be276f();
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
index 27327a1..1f58dc7 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_c0640c();
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl
index 9b84716..5d3a9e1 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl
index 9b84716..5d3a9e1 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm
index 9cf036f..506196aa 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_c0640c "textureGather_c0640c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -86,8 +86,8 @@
 %textureGather_c0640c = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl
index 9cdd8a7..4f60de7 100644
--- a/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/c0640c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_c0640c();
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl
index 3ebbe98..c39d1db 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ccadde();
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl
index 036a5cd..0ddd6dc 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl
index 036a5cd..0ddd6dc 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl
index 7397a5e..9a347d4 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_ccadde() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_ccadde() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm
index 8271e0c..a8f46d3 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_ccadde "textureGather_ccadde"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureGather_ccadde = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4int %30 %33 %uint_1
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl
index f5eb5a9..eb60dda 100644
--- a/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ccadde.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ccadde();
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl
index 615222f..5d20df1 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ce5578();
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl
index 914a527..5426dca 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ce5578()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl
index 914a527..5426dca 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ce5578()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl
index 2b8abcc..808cb37 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_ce5578() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_ce5578() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm
index abda2eb..c7b7efa 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_ce5578 "textureGather_ce5578"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_ce5578 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl
index 5009b1f..fe6b228 100644
--- a/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ce5578.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ce5578();
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl
index a01faed..2ebbf54 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_cf9112();
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl
index d454fcb..d00c115 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl
index d454fcb..d00c115 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl
index c9a2059..2957972 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_cf9112() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_cf9112() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm
index 234df35..d95ecda 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_cf9112 "textureGather_cf9112"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_cf9112 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl
index deb90fb..7af23db 100644
--- a/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/cf9112.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_cf9112();
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl
index 1674ac5..7d3e000 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d1f187();
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl
index e86335d..e8d89f4 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d1f187()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl
index e86335d..e8d89f4 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d1f187()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl
index a172cd6..024fa5d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_d1f187() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_d1f187() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm
index 5f72224..211925d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d1f187 "textureGather_d1f187"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_d1f187 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl
index e6c33bd..e0b6d83 100644
--- a/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d1f187.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d1f187();
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
index cc3acde..aa95f0c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d4b5c6();
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
index c8e77bf..7294a5a 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d4b5c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
index c8e77bf..7294a5a 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d4b5c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm
index ad8f67c..fc19625 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d4b5c6 "textureGather_d4b5c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -86,8 +86,8 @@
 %textureGather_d4b5c6 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl
index 23e546a..98ea5f5 100644
--- a/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d4b5c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d4b5c6();
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl
index 93cd2b2..6f37cd7 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d6507c();
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl
index 324b4fb..a0242640 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl
index 324b4fb..a0242640 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl
index 8b82780..62fae21 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d6507c() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d6507c() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm
index fa0ee00..5c2cd16 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d6507c "textureGather_d6507c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureGather_d6507c = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %uint_1 ConstOffset %35
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl
index 01eddf7..9c98ce9 100644
--- a/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d6507c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d6507c();
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl
index 8cd9ee2..2c5411c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d8e958();
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl
index 0e9491d..93010bed 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl
index 0e9491d..93010bed 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl
index e0ffe5d..a2b83c7 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d8e958() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d8e958() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm
index fd02814..98a848f 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d8e958 "textureGather_d8e958"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureGather_d8e958 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageGather %v4float %26 %29 %uint_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl
index ad8e56e..8c214c9 100644
--- a/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d8e958.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d8e958();
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl
index 6072b84..ed86a2c 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d90605();
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl
index 5b8b23d..d1d352b 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d90605()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl
index 5b8b23d..d1d352b 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d90605()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl
index f09cb70..e2ea35d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_d90605() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_d90605() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm
index 0851594..a498e7d 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_d90605 "textureGather_d90605"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureGather_d90605 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl
index b9e77da..3b74b75 100644
--- a/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d90605.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d90605();
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
index ca31050..e491092 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d98d59();
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl
index bfa58c8..1d08e35 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl
index bfa58c8..1d08e35 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm
index 977c729..401b2a0 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d98d59 "textureGather_d98d59"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureGather_d98d59 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl
index 9853b39..8825cb1 100644
--- a/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/d98d59.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d98d59();
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl
index 7ae6375..d646886 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_dc6661();
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl
index 99ff48f..9a55238 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl
index 99ff48f..9a55238 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl
index aed4612..e730781 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_dc6661() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_dc6661() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm
index 916b0f8..d709c44 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_dc6661 "textureGather_dc6661"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v2float %float_1 %float_1
@@ -87,8 +87,8 @@
 %textureGather_dc6661 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %26 = OpImageGather %v4int %30 %33 %uint_1 ConstOffset %38
                OpStore %res %26
diff --git a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl
index a1e154f..919c62a 100644
--- a/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/dc6661.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_dc6661();
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
index d3d21d2..579f77d 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e2acac();
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl
index 1d5872c..35ae048 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e2acac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl
index 1d5872c..35ae048 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e2acac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm
index af0a5dd..8b4dc84 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_e2acac "textureGather_e2acac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureGather_e2acac = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl
index a06e3ee..aae0504 100644
--- a/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e2acac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e2acac();
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl
index 1fc5517..f0cbfa2 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e3165f();
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl
index c7f0da3..cde561f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e3165f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl
index c7f0da3..cde561f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e3165f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl
index 1835f2e..1f6871d 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_e3165f() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_e3165f() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm
index c7e14fc..8d899a0 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_e3165f "textureGather_e3165f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_e3165f = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl
index 2648bd0..c2739d5 100644
--- a/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e3165f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e3165f();
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl
index 3267006..388625f 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureGather(1i, arg_1, arg_2, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e9d390();
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl
index ae0761a..32ab504 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl
index ae0761a..32ab504 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl
index f5c4bd0..28dc33a 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_e9d390() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_e9d390() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm
index ec1f6c3..413804d 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_e9d390 "textureGather_e9d390"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,17 +55,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -88,8 +88,8 @@
 %textureGather_e9d390 = OpFunction %v4int None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %35 = OpCompositeExtract %float %34 0
          %36 = OpCompositeExtract %float %34 1
diff --git a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl
index 646c41c..c377844 100644
--- a/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/e9d390.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e9d390();
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl
index 2b59d54..466f8d3 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGather(1u, arg_1, arg_2, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ea8eb4();
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
index 84c9985..812b34c 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
index 84c9985..812b34c 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl
index ef32c0b..c82564e 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_ea8eb4() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_ea8eb4() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm
index 34c0a82..9fa188c 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_ea8eb4 "textureGather_ea8eb4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -80,8 +80,8 @@
 %textureGather_ea8eb4 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_2
-         %24 = OpLoad %12 %arg_1
+         %23 = OpLoad %18 %arg_2
+         %24 = OpLoad %15 %arg_1
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl
index 8a7d74e..ad3f916 100644
--- a/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/ea8eb4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ea8eb4();
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
index c19edb6..0daf9af 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureGather(1i, arg_1, arg_2, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_f2c6e3();
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
index 948f2f8..3c1bab7 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_f2c6e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
index 948f2f8..3c1bab7 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_f2c6e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm
index 4035cc8..bfdc5b0 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_f2c6e3 "textureGather_f2c6e3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,17 +56,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
-         %29 = OpTypeSampledImage %16
+         %29 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %33 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -86,8 +86,8 @@
 %textureGather_f2c6e3 = OpFunction %v4uint None %23
          %25 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %27 = OpLoad %19 %arg_2
-         %28 = OpLoad %16 %arg_1
+         %27 = OpLoad %22 %arg_2
+         %28 = OpLoad %19 %arg_1
          %30 = OpSampledImage %29 %28 %27
          %34 = OpCompositeExtract %float %33 0
          %35 = OpCompositeExtract %float %33 1
diff --git a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl
index a8315eb..8fd06b8 100644
--- a/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGather/f2c6e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_f2c6e3();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl
index 836d98a..0f6ddad 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_144a9a();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
index f1b5d6a..266c915 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
index f1b5d6a..266c915 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl
index 087299d..a55c910 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_144a9a() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_144a9a() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm
index bd809ba..5c2ea5c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_144a9a "textureGatherCompare_144a9a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGatherCompare_144a9a = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl
index dc4a5c2..cc3a62e 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/144a9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_144a9a();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl
index 3f5f84b..284ebe7 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_182fd4();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
index 9d87135c..969cdfd 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
index 9d87135c..969cdfd 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl
index 743360a..2daebc1 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_182fd4() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_182fd4() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm
index 624b729..0508407 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_182fd4 "textureGatherCompare_182fd4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureGatherCompare_182fd4 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageDrefGather %v4float %26 %29 %float_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl
index 519995b..653ca86 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/182fd4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_182fd4();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
index 87d335f..0c96954 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_2e409c();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
index 6b17205..16e8fa1 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
index 6b17205..16e8fa1 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm
index c082e0a..8df29cf 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_2e409c "textureGatherCompare_2e409c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -80,8 +80,8 @@
 %textureGatherCompare_2e409c = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl
index 8eee89d..e096922 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/2e409c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_2e409c();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl
index 52628fd..f6d803a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_313add();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
index d8973cc..0d09970 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
index d8973cc..0d09970 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl
index d3ac55a..6cf232d 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_313add() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_313add() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm
index da313af..8bd4a9e 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_313add "textureGatherCompare_313add"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureGatherCompare_313add = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageDrefGather %v4float %26 %29 %float_1 ConstOffset %33
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl
index 9d17ec0..27aa0a6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/313add.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_313add();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
index bf9cb5b..38a4b89 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_60d2d1();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
index 6eb24bd..a0d37bc 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
index 6eb24bd..a0d37bc 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm
index c8f2dbc..0347060 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_60d2d1 "textureGatherCompare_60d2d1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureGatherCompare_60d2d1 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl
index 8592935..75529a5 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/60d2d1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_60d2d1();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl
index 24ff6c8..73d27af 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_6d9352();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
index 46ce18d..a1a5ab5 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
index 46ce18d..a1a5ab5 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl
index bd6a34d..a7b376c 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_6d9352() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_6d9352() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm
index b5e8fe4..4e1e7ad 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_6d9352 "textureGatherCompare_6d9352"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureGatherCompare_6d9352 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageDrefGather %v4float %26 %29 %float_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl
index bfacc3d..ee7b9db 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/6d9352.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_6d9352();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl
index bd9aad6..fbab513 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_783e65();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
index 026df2a..1408082 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
index 026df2a..1408082 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl
index 2eaa4f8..e26f5db 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_783e65() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_783e65() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm
index 4a7214a..ee3a362 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_783e65 "textureGatherCompare_783e65"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureGatherCompare_783e65 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl
index 31804be..7ed6519 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/783e65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_783e65();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl
index 0bb3df4..2ea2536 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_b5bc43();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
index 1544640..01bc41b 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
index 1544640..01bc41b 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl
index 7e2794e..e90c740 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_b5bc43() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_b5bc43() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm
index 675aabf..c94639b 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_b5bc43 "textureGatherCompare_b5bc43"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -80,8 +80,8 @@
 %textureGatherCompare_b5bc43 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl
index 120a91b..094925a 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/b5bc43.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_b5bc43();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl
index 9796f4b..6aa61cc 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_f585cc();
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
index b797dde..dc64b90 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
index b797dde..dc64b90 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl
index 9be694c..624d366 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_f585cc() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_f585cc() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm
index 05d6825..69e5145 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_f585cc "textureGatherCompare_f585cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureGatherCompare_f585cc = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl
index 7c40b28..0ec18d6 100644
--- a/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureGatherCompare/f585cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_f585cc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl
index 28d87a3..0107603 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_012e11();
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.dxc.hlsl
index 46d4631..34e4378 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_012e11() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_012e11()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.fxc.hlsl
index 46d4631..34e4378 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_012e11() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_012e11()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.spvasm
index 19a3180..cee78ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_012e11 "textureLoad_012e11"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_012e11 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.wgsl
index ceac0cb..23bfec2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/012e11.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
 
 fn textureLoad_012e11() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_012e11();
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl
index de406de..cffcb37 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_019da0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl
index a0504f2..acc2768 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_019da0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl
index a0504f2..acc2768 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_019da0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl
index 5d3b714..2823e3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_019da0() {
   vec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_019da0() {
   vec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm
index 7d66884..a1b59a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_019da0 "textureLoad_019da0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_019da0 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %uint_1
                OpStore %res %19
          %29 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl
index aaeb829..a6b6d36 100644
--- a/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/019da0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_019da0() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_019da0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl
index 9725e89..3741795 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_01cd01();
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.dxc.hlsl
index f5f6667..d40584e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_01cd01() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_01cd01()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.fxc.hlsl
index f5f6667..d40584e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_01cd01() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_01cd01()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl
index 6c39663..e0828b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_01cd01() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_01cd01() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.spvasm
index b85271b..8a65654 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_01cd01 "textureLoad_01cd01"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_01cd01 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.wgsl
index 45ed3b2..2f43643 100644
--- a/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/01cd01.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_01cd01() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_01cd01();
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl
index 334126f..48c66c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_026217();
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl
index d859db9..9354a2f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_026217() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_026217()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl
index d859db9..9354a2f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_026217() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_026217()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl
index 2500947..fbe78c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_026217() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_026217() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm
index fe3198d..38e205e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_026217 "textureLoad_026217"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_026217 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl
index 2962973..c2a9760 100644
--- a/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/026217.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_026217() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_026217();
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl
index 7df2c28..d1a2330 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02c48d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.dxc.hlsl
index 4e98779..0a03e03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02c48d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02c48d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.fxc.hlsl
index 4e98779..0a03e03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02c48d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02c48d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.spvasm
index afb513f..36206d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_02c48d "textureLoad_02c48d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_02c48d = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.wgsl
index bf9627a..e2da8f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02c48d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
 
 fn textureLoad_02c48d() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02c48d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl
index 9442041..0eb8417 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02ef1f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.dxc.hlsl
index 2759f83..ddc6ffd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02ef1f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02ef1f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.fxc.hlsl
index 2759f83..ddc6ffd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02ef1f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02ef1f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl
index 50062a3..c4d61d0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_02ef1f() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_02ef1f() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.spvasm
index c9a777e..d0a6c0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_02ef1f "textureLoad_02ef1f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_02ef1f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.wgsl
index 297f1ff..2636eeb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/02ef1f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
 
 fn textureLoad_02ef1f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02ef1f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl
index 22208ab..7b7d1f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_03e03e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.dxc.hlsl
index e1965c6..f018f60 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_03e03e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_03e03e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.fxc.hlsl
index e1965c6..f018f60 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_03e03e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_03e03e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.spvasm
index f935931..af2a114 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_03e03e "textureLoad_03e03e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_03e03e = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.wgsl
index 70c3f7a..6b21a33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/03e03e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
 
 fn textureLoad_03e03e() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_03e03e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl
index 6399781..0341629 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_045ec9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.dxc.hlsl
index 437f064..0f7c335 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_045ec9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_045ec9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.fxc.hlsl
index 437f064..0f7c335 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_045ec9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_045ec9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl
index 6ee5d26..835667c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_045ec9() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_045ec9() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.spvasm
index e31bc07..9145ff0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_045ec9 "textureLoad_045ec9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_045ec9 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.wgsl
index b346af4..a2cd3f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/045ec9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read>;
 
 fn textureLoad_045ec9() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_045ec9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl
index 5cdff66..5e112e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_04b911();
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl
index 7a63412..435eef5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_04b911() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_04b911()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl
index 7a63412..435eef5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_04b911() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_04b911()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl
index f06898c..461d164 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_04b911() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_04b911() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm
index 8a3e328..f2753ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_04b911 "textureLoad_04b911"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_04b911 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %uint %26 0
          %28 = OpCompositeExtract %uint %26 1
          %29 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl
index 880277f..75b5cfc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/04b911.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_04b911() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_04b911();
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl
index cb945bc..eeda3f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_050c33();
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.dxc.hlsl
index 7ff1a95..439eb64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_050c33() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_050c33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.fxc.hlsl
index 7ff1a95..439eb64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_050c33() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_050c33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.spvasm
index 9702016..2b697c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_050c33 "textureLoad_050c33"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_050c33 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.wgsl
index f8588b3..b6002bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/050c33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read>;
 
 fn textureLoad_050c33() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_050c33();
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl
index 0948b46..992b61c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read_write>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_054350();
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.dxc.hlsl
index 6c0fee0..2f42691 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_054350() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_054350()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.fxc.hlsl
index 6c0fee0..2f42691 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_054350() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_054350()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.spvasm
index 5d6798e..164855c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_054350 "textureLoad_054350"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -75,7 +75,7 @@
 %textureLoad_054350 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.wgsl
index 6d2dd4e..8259271 100644
--- a/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/054350.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
 
 fn textureLoad_054350() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_054350();
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl
index e849e5b..dc30238 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0674b1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.dxc.hlsl
index b143216..54ae249 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_0674b1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0674b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.fxc.hlsl
index b143216..54ae249 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_0674b1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0674b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl
index 27124aa..73db533 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_0674b1() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_0674b1() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.spvasm
index bec71c2..2f22651 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_0674b1 "textureLoad_0674b1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_0674b1 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.wgsl
index 3bde090..6004f8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0674b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read>;
 
 fn textureLoad_0674b1() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0674b1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl
index c9b5bdb..74db087 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_06ac37();
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.dxc.hlsl
index 035fd22..36018a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_06ac37() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_06ac37()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.fxc.hlsl
index 035fd22..36018a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_06ac37() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_06ac37()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl
index 399c4a9..729c721 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_06ac37() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_06ac37() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.spvasm
index 352a081..89e93d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_06ac37 "textureLoad_06ac37"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_06ac37 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.wgsl
index 12e327d..9d811a31 100644
--- a/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/06ac37.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_06ac37() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_06ac37();
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl
index a65d0ae..a99b356 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_072e26();
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.dxc.hlsl
index a0efe7a..91c4135 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_072e26() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_072e26()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.fxc.hlsl
index a0efe7a..91c4135 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_072e26() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_072e26()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl
index b432c245..a949ca6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_072e26() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_072e26() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.spvasm
index de296ee..924f914 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_072e26 "textureLoad_072e26"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_072e26 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.wgsl
index bc5aea3..f542b14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/072e26.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_072e26() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_072e26();
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl
index d025e5d..bdb599e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_078bc4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.dxc.hlsl
index 0d15c9f..57c95fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_078bc4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_078bc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.fxc.hlsl
index 0d15c9f..57c95fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_078bc4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_078bc4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl
index cf939dc..f62c08e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_078bc4() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_078bc4() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.spvasm
index fd37ce8..661fd37 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_078bc4 "textureLoad_078bc4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_078bc4 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.wgsl
index 48dc505..e88959c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/078bc4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read>;
 
 fn textureLoad_078bc4() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_078bc4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl
index 9cd0764..74f1a2d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0b515a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.dxc.hlsl
index d705601d..1c194d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_0b515a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0b515a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.fxc.hlsl
index d705601d..1c194d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_0b515a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0b515a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.spvasm
index f92cdb2..fd64d73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_0b515a "textureLoad_0b515a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_0b515a = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.wgsl
index ef0b728..11034e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0b515a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_0b515a() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0b515a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl
index 8c977ce..9efe72c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: u32, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0cb698();
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.dxc.hlsl
index cfd5411..c8962cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_0cb698() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.fxc.hlsl
index cfd5411..c8962cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_0cb698() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.glsl
index 01a340c..93573f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_0cb698() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_0cb698() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.spvasm
index 2f58c85..f1210d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_0cb698 "textureLoad_0cb698"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_0cb698 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %uint_1 Lod %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.wgsl
index 09c4f8d..c46b4e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/0cb698.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_0cb698() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0cb698();
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl
index 4108ba0..5c48b2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_10db82();
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.dxc.hlsl
index 4953282..f639a08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_10db82() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_10db82()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.fxc.hlsl
index 4953282..f639a08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_10db82() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_10db82()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl
index e3bcb34..76e4a7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_10db82() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_10db82() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.spvasm
index 98b18c8..3906fe3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_10db82 "textureLoad_10db82"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_10db82 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.wgsl
index 2cc4be6..2859e07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/10db82.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_10db82() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_10db82();
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl
index 450c26d..d0aaee3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_126466();
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.dxc.hlsl
index 273b491..a28ce9e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_126466() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_126466()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.fxc.hlsl
index 273b491..a28ce9e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_126466() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_126466()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.spvasm
index 42412e1..668575c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_126466 "textureLoad_126466"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_126466 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.wgsl
index d658a27..33471bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/126466.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
 
 fn textureLoad_126466() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_126466();
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl
index deeed9a..8b1904a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_127e12();
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.dxc.hlsl
index a3836e6..25765cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_127e12() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_127e12()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.fxc.hlsl
index a3836e6..25765cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_127e12() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_127e12()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl
index 3a6f3da..0a39aab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_127e12() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_127e12() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.spvasm
index 2840ce4..8f0bf77 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_127e12 "textureLoad_127e12"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_127e12 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.wgsl
index 7ba850a..7509869 100644
--- a/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/127e12.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_127e12() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_127e12();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl
index 2b71f9c..26715cb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: u32, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1373dc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.dxc.hlsl
index f14a5b2..efbab41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1373dc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.fxc.hlsl
index f14a5b2..efbab41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1373dc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.glsl
index f9372ca..6f5a884 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_1373dc() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_1373dc() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.spvasm
index c3ccf39..379116a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1373dc "textureLoad_1373dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -73,7 +73,7 @@
 %textureLoad_1373dc = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %uint_1 Lod %int_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.wgsl
index d2ce545..912572d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1373dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_1373dc() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1373dc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl
index dbbbb0e..0eb9696 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13d539();
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.dxc.hlsl
index f032b61..2c43cc5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_13d539() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13d539()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.fxc.hlsl
index f032b61..2c43cc5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_13d539() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13d539()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl
index 243a06a..8d25f46 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_13d539() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_13d539() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.spvasm
index b0e6822..9cb95c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_13d539 "textureLoad_13d539"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -80,7 +80,7 @@
 %textureLoad_13d539 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.wgsl
index 0f9677f..cc64779 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13d539.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_13d539() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13d539();
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl
index 40b203c..75fd0c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13e90c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.dxc.hlsl
index 1c92622..3ae7728 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_13e90c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13e90c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.fxc.hlsl
index 1c92622..3ae7728 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_13e90c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13e90c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl
index c80adab..0b63288 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_13e90c() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_13e90c() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.spvasm
index 28a6350..fdf277e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_13e90c "textureLoad_13e90c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_13e90c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.wgsl
index e6c0677..d40dd69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/13e90c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_13e90c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13e90c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl
index 9cc7496..62be6dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_143d84();
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.dxc.hlsl
index 1d28b2a..7c1d757 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_143d84() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_143d84()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.fxc.hlsl
index 1d28b2a..7c1d757 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_143d84() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_143d84()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.spvasm
index 8c79a8e..c29ba24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_143d84 "textureLoad_143d84"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -77,7 +77,7 @@
 %textureLoad_143d84 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.wgsl
index 37d2f04..6f73932 100644
--- a/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/143d84.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_143d84() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_143d84();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl
index 4758348..f093759 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1471b8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.dxc.hlsl
index 983d11d..40fe9ef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1471b8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1471b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.fxc.hlsl
index 983d11d..40fe9ef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1471b8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1471b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl
index 2e09c2c..d6928e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1471b8() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1471b8() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.spvasm
index 676d1c3..8063821 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1471b8 "textureLoad_1471b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -80,7 +80,7 @@
 %textureLoad_1471b8 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.wgsl
index 5bc8efe..770b0a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1471b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_1471b8() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1471b8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl
index e016a09..53e4b25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_14cc4c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.dxc.hlsl
index 9a24c49..e5f53ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_14cc4c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_14cc4c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.fxc.hlsl
index 9a24c49..e5f53ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_14cc4c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_14cc4c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.spvasm
index 3ca7e5d..9ae510f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_14cc4c "textureLoad_14cc4c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_14cc4c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.wgsl
index e593711..bb04347 100644
--- a/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/14cc4c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
 
 fn textureLoad_14cc4c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_14cc4c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl
index 680d3b0..821a10f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1561a7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.dxc.hlsl
index c1131f9..b6873b2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1561a7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1561a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.fxc.hlsl
index c1131f9..b6873b2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1561a7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1561a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl
index c75ef1b..f753dc0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1561a7() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1561a7() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.spvasm
index 1970f0c..2e35e8d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1561a7 "textureLoad_1561a7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_1561a7 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.wgsl
index 2023bc4..6002628 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1561a7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read>;
 
 fn textureLoad_1561a7() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1561a7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl
index ecb2562..e2bb61a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_15e675();
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.dxc.hlsl
index ebfc1c4..7249e6e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_15e675() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_15e675()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.fxc.hlsl
index ebfc1c4..7249e6e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_15e675() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_15e675()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl
index e4aba38..4363bfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_15e675() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_15e675() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.spvasm
index f5aba1b..cf3f4ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_15e675 "textureLoad_15e675"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -80,7 +80,7 @@
 %textureLoad_15e675 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.wgsl
index 10d7d04..bc093a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/15e675.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_15e675() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_15e675();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl
index afb902e..cc567c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1619bf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.dxc.hlsl
index 24728e5..9181666 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1619bf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1619bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.fxc.hlsl
index 24728e5..9181666 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1619bf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1619bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl
index ee1ed52..e74bc15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_1619bf() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_1619bf() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.spvasm
index e793c8f..c3b88a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1619bf "textureLoad_1619bf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_1619bf = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.wgsl
index b8b180d..d9d464d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1619bf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_1619bf() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1619bf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl
index 18087a0..4a6f33f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_168dc8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl
index 2bb79c8..abf843e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_168dc8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl
index 2bb79c8..abf843e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_168dc8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl
index 0635a0d..6c2abd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_168dc8() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_168dc8() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm
index a2ff1b0..324e465 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_168dc8 "textureLoad_168dc8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_168dc8 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl
index 8bfef6c..cb4b26a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/168dc8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_168dc8() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_168dc8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl
index 005362b..ed2c4ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_170593();
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.dxc.hlsl
index 84213ce..8fb1dfe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_170593() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_170593()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.fxc.hlsl
index 84213ce..8fb1dfe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_170593() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_170593()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.spvasm
index 473e396..953719f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_170593 "textureLoad_170593"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_170593 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.wgsl
index 5f524d9..45a08aa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/170593.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
 
 fn textureLoad_170593() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_170593();
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl
index 2acd5bc..c82f35d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read_write>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_17095b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.dxc.hlsl
index 5ef7138..bad0b76 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_17095b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_17095b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.fxc.hlsl
index 5ef7138..bad0b76 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_17095b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_17095b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.spvasm
index 9eca616..10f54d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_17095b "textureLoad_17095b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -75,7 +75,7 @@
 %textureLoad_17095b = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.wgsl
index 9edc195..ea4ee65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/17095b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
 
 fn textureLoad_17095b() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_17095b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl
index 970be97..fddf0e1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_18ac11();
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.dxc.hlsl
index 02a853f..c091249 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_18ac11() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_18ac11()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.fxc.hlsl
index 02a853f..c091249 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_18ac11() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_18ac11()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.spvasm
index 3cb4d20..a34fe0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_18ac11 "textureLoad_18ac11"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureLoad_18ac11 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.wgsl
index 057d966..e90efbd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/18ac11.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read>;
 
 fn textureLoad_18ac11() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_18ac11();
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl
index f9ab960..a9069b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19cf87();
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl
index 22875328..5728002 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_19cf87() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl
index 22875328..5728002 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_19cf87() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl
index 41373d6..d112eb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_19cf87() {
   float res = texelFetch(arg_0_1, ivec2(1), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_19cf87() {
   float res = texelFetch(arg_0_1, ivec2(1), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm
index afde8a4..b8cbde7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_19cf87 "textureLoad_19cf87"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_19cf87 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Lod %int_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl
index 5cbe28c..ebc20e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19cf87.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_19cf87() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19cf87();
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl
index 2e6dc48..9a97d1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19d6be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.dxc.hlsl
index 0d82cb6..332efa4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_19d6be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19d6be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.fxc.hlsl
index 0d82cb6..332efa4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_19d6be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19d6be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl
index 2ad1795..0cad404 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_19d6be() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_19d6be() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.spvasm
index d95a594..d073341 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_19d6be "textureLoad_19d6be"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_19d6be = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.wgsl
index 8dfecb0..a5fe865 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19d6be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
 
 fn textureLoad_19d6be() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19d6be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl
index f18d4d3..0260155 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19e5ca();
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.dxc.hlsl
index 18247c4..36dedc5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_19e5ca() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19e5ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.fxc.hlsl
index 18247c4..36dedc5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_19e5ca() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19e5ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.spvasm
index 0504000..9ca6606 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_19e5ca "textureLoad_19e5ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -77,7 +77,7 @@
 %textureLoad_19e5ca = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.wgsl
index 802c447..89eab40 100644
--- a/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/19e5ca.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_19e5ca() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19e5ca();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl
index 88583c4..319aae0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a062f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.dxc.hlsl
index e8dd227..773da22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1a062f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a062f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.fxc.hlsl
index e8dd227..773da22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1a062f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a062f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl
index 65afd71..bb0bfb6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_1a062f() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_1a062f() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.spvasm
index cb6b5dc..feb0e99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1a062f "textureLoad_1a062f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_1a062f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.wgsl
index 751fa06..160e49d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a062f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_1a062f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a062f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl
index b018694..c6e5ee2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a8452();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.dxc.hlsl
index 3e323e7..76ea99c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1a8452() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a8452()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.fxc.hlsl
index 3e323e7..76ea99c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1a8452() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a8452()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl
index e31e9a0..7cfb723 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1a8452() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1a8452() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.spvasm
index f0b5740..0866254 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1a8452 "textureLoad_1a8452"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_1a8452 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.wgsl
index 428b5e2..95b3987 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1a8452.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read>;
 
 fn textureLoad_1a8452() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a8452();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl
index 29373c1..a003dc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1aa950();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.dxc.hlsl
index 8d7f2ea..67eda9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1aa950() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1aa950()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.fxc.hlsl
index 8d7f2ea..67eda9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1aa950() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1aa950()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl
index 636553e..c833652 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1aa950() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1aa950() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.spvasm
index 99857b3..a908d4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1aa950 "textureLoad_1aa950"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_1aa950 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.wgsl
index 555d773..98322d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1aa950.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_1aa950() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1aa950();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl
index df4ad33..428dd9e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b051f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl
index 3ba0b5e..ff9ab89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b051f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b051f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl
index 3ba0b5e..ff9ab89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b051f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b051f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl
index 0a483fc..6e7628a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_1b051f() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_1b051f() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm
index 61c9a3f..b615ece 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1b051f "textureLoad_1b051f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_1b051f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl
index ebfbf5c..53dc075 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b051f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_1b051f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b051f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl
index 111e7d3..66d7a01 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b4332();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.dxc.hlsl
index bfb61d2..dfb9bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_1b4332() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b4332()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.fxc.hlsl
index bfb61d2..dfb9bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_1b4332() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b4332()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl
index a16aef0..19b421d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_1b4332() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_1b4332() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.spvasm
index 8211a0a..b57e987 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1b4332 "textureLoad_1b4332"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -78,7 +78,7 @@
 %textureLoad_1b4332 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.wgsl
index 9f5ad08..f23e795 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b4332.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
 
 fn textureLoad_1b4332() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b4332();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl
index 0bb102d..e5fa371 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: i32, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b8588();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.dxc.hlsl
index 07f0857..75ba8c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b8588() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b8588()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.fxc.hlsl
index 07f0857..75ba8c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b8588() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b8588()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.glsl
index 28e01e23..0d42113 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_1b8588() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1, 0), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_1b8588() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1, 0), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.spvasm
index 3bc2727..de9742f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1b8588 "textureLoad_1b8588"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureLoad_1b8588 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %int_1 Lod %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.wgsl
index 28b80da..8d882cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1b8588.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_1b8588() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b8588();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl
index 995676e..fe40514 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bc5ab();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl
index 8363ad6..509b94b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1bc5ab() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bc5ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl
index 8363ad6..509b94b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1bc5ab() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bc5ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.spvasm
index 20890b8..0e5da70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1bc5ab "textureLoad_1bc5ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_1bc5ab = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.wgsl
index 32f78ad..51cd6f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bc5ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
 
 fn textureLoad_1bc5ab() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bc5ab();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl
index 4638aef..bf65c43 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 
 // fn textureLoad(texture: texture_external, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bfdfb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
index 5a9a3d0..9148b8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -121,8 +122,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
index 5a9a3d0..9148b8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -121,8 +122,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
index 0b25a42..3df65d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.glsl
@@ -72,6 +72,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -108,10 +112,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -197,6 +197,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -233,10 +237,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
index bd08bfe..a622999 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.spvasm
@@ -46,10 +46,10 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_ftou "tint_ftou"
                OpName %v "v"
                OpName %gammaCorrection "gammaCorrection"
@@ -129,12 +129,12 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 2
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %ExternalTextureParams 0 Offset 0
                OpMemberDecorate %ExternalTextureParams 1 Offset 4
                OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -182,10 +182,10 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
          %28 = OpTypeFunction %v2uint %v2float
 %float_4_29496704e_09 = OpConstant %float 4.29496704e+09
          %34 = OpConstantComposite %v2float %float_4_29496704e_09 %float_4_29496704e_09
diff --git a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl
index 08d0db9..72992cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1bfdfb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_1bfdfb() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bfdfb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl
index 319bc2e..37a8b35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1c562a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl
index 506bd8a..1420c30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1c562a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1c562a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl
index 506bd8a..1420c30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1c562a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1c562a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl
index 4f105d7..67ddaa5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_1c562a() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_1c562a() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm
index 69d5e85..fa6bc89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1c562a "textureLoad_1c562a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_1c562a = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %27 Lod %uint_1
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl
index 2219b94..bbf8ced 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1c562a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_1c562a() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1c562a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl
index 53bcdd6..db0a9a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read_write>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1d43ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.dxc.hlsl
index 75f928e..1c0728d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1d43ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1d43ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.fxc.hlsl
index 75f928e..1c0728d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1d43ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1d43ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.spvasm
index 0c1633c..c14f2d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1d43ae "textureLoad_1d43ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -77,7 +77,7 @@
 %textureLoad_1d43ae = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.wgsl
index 0b71255..085e0e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1d43ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
 
 fn textureLoad_1d43ae() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1d43ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl
index 92d1473..2e1ce28 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1e6baa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.dxc.hlsl
index d5edbb3..aa17442 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1e6baa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1e6baa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.fxc.hlsl
index d5edbb3..aa17442 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1e6baa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1e6baa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.spvasm
index d1d7f70..e28f7a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1e6baa "textureLoad_1e6baa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_1e6baa = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.wgsl
index 56487bc..9d76b4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1e6baa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
 
 fn textureLoad_1e6baa() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1e6baa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl
index 3b1cfe6..2a16960 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1eb93f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.dxc.hlsl
index cd28d13..1483fc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1eb93f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1eb93f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.fxc.hlsl
index cd28d13..1483fc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1eb93f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1eb93f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.spvasm
index 80144ef..b604ab5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1eb93f "textureLoad_1eb93f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -74,7 +74,7 @@
 %textureLoad_1eb93f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.wgsl
index 5cc8740..1e37bf0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1eb93f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read>;
 
 fn textureLoad_1eb93f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1eb93f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl
index 5ede66b..1e967b2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1f2016();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl
index 1230cad..14e35ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1f2016() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl
index 1230cad..14e35ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1f2016() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl
index 20da863..e762ffa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_1f2016() {
   vec4 res = texelFetch(arg_0_1, ivec3(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_1f2016() {
   vec4 res = texelFetch(arg_0_1, ivec3(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm
index 0b50d79..1330329 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1f2016 "textureLoad_1f2016"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_1f2016 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %int_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl
index 88f1ba7..e5da9a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1f2016.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_1f2016() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1f2016();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl
index 37b4f8e..6f2fc9f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1fde63();
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.dxc.hlsl
index 96b8874..7983aaa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1fde63() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1fde63()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.fxc.hlsl
index 96b8874..7983aaa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1fde63() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1fde63()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.spvasm
index 49fc98b..38aef14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1fde63 "textureLoad_1fde63"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_1fde63 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.wgsl
index bf4f3b4..4f06af3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/1fde63.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read_write>;
 
 fn textureLoad_1fde63() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1fde63();
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl
index 15dc8a7..97c284d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_206a08();
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.dxc.hlsl
index 4367551..cb0ca52 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_206a08() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_206a08()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.fxc.hlsl
index 4367551..cb0ca52 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_206a08() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_206a08()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl
index 461069e..b457415 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_206a08() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_206a08() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.spvasm
index 53f403c..f4f7127 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_206a08 "textureLoad_206a08"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -76,7 +76,7 @@
 %textureLoad_206a08 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.wgsl
index 30e5172..c0bcf47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/206a08.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read>;
 
 fn textureLoad_206a08() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_206a08();
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl
index 6e4413e..99efd65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_20fa2f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.dxc.hlsl
index a316e8ca..77052e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_20fa2f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_20fa2f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.fxc.hlsl
index a316e8ca..77052e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_20fa2f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_20fa2f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.spvasm
index 4177a18..74e3bda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_20fa2f "textureLoad_20fa2f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -77,7 +77,7 @@
 %textureLoad_20fa2f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.wgsl
index a602d48..4f911ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/20fa2f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_20fa2f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_20fa2f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl
index 1feca26..00ac7e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: u32, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_216c37();
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.dxc.hlsl
index 9ce4418..4027a8d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_216c37() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_216c37()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.fxc.hlsl
index 9ce4418..4027a8d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_216c37() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_216c37()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.glsl
index b75bf85..b8f8af4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_216c37() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_216c37() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.spvasm
index cc6e9d4..e322518 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_216c37 "textureLoad_216c37"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureLoad_216c37 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %uint_1 Lod %int_1
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.wgsl
index d468023..b6c0fde 100644
--- a/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/216c37.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_216c37() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_216c37();
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl
index 3a52062..2922363 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_21d1c4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
index cbbe16d..2918e9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_21d1c4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
index cbbe16d..2918e9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_21d1c4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl
index 6a76d19..4417c27b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_21d1c4() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_21d1c4() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm
index 19a4244..89a15cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_21d1c4 "textureLoad_21d1c4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_21d1c4 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %uint_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl
index b791820..53448f7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/21d1c4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_21d1c4() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_21d1c4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl
index 1218ab6..efc0cea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_223246();
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl
index 20631e9..836faeb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_223246() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_223246()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl
index 20631e9..836faeb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_223246() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_223246()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl
index 5318a78..db1a9fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_223246() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_223246() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm
index 6722c20..8de67fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_223246 "textureLoad_223246"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_223246 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %28 Lod %int_1
                OpStore %res %23
          %32 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl
index b5d7d3f..542a470 100644
--- a/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/223246.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_223246() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_223246();
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl
index 957c2f8..8b05d90 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_22e963();
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.dxc.hlsl
index 4cd745c..d246552 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_22e963() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_22e963()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.fxc.hlsl
index 4cd745c..d246552 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_22e963() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_22e963()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl
index 680a50e..2cd197d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_22e963() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_22e963() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.spvasm
index 7057063..c296295 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_22e963 "textureLoad_22e963"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_22e963 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.wgsl
index a0a8526..911575e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/22e963.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_22e963() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_22e963();
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl
index b2c382d..8bb978e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23007a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.dxc.hlsl
index 3aff5d1..42561d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_23007a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23007a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.fxc.hlsl
index 3aff5d1..42561d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_23007a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23007a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.spvasm
index 740dd1a..d7f217c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_23007a "textureLoad_23007a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_23007a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.wgsl
index b0cf5c0..42e0142 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23007a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_23007a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23007a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl
index a801849..9e6d666 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2363be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl
index 4860864..b03dc50 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2363be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl
index 4860864..b03dc50 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2363be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl
index 6f91c75..25e7795 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_2363be() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_2363be() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm
index ae7daf2..1fb3edb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2363be "textureLoad_2363be"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_2363be = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl
index 38e4131..7dd2a30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2363be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_2363be() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2363be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl
index 4bf4886..b91c3bfe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23ff89();
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.dxc.hlsl
index 075296c..b917742 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_23ff89() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23ff89()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.fxc.hlsl
index 075296c..b917742 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_23ff89() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23ff89()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl
index 4c7937c..6df1a13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_23ff89() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_23ff89() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.spvasm
index 22cc5a7..4751e13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_23ff89 "textureLoad_23ff89"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_23ff89 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.wgsl
index 3794403..fa5239f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/23ff89.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_23ff89() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23ff89();
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl
index f886a02..9b940ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_25b67f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.dxc.hlsl
index 91400fa..46a85ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_25b67f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_25b67f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.fxc.hlsl
index 91400fa..46a85ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_25b67f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_25b67f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.spvasm
index d66d301..84e75af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_25b67f "textureLoad_25b67f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_25b67f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.wgsl
index f90cf4a..1d367b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/25b67f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
 
 fn textureLoad_25b67f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_25b67f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl
index a6478a0..8038932 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26b8f6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.dxc.hlsl
index 17b81e6..a221a9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_26b8f6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26b8f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.fxc.hlsl
index 17b81e6..a221a9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_26b8f6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26b8f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.spvasm
index 88f81c9..3218a74 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_26b8f6 "textureLoad_26b8f6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_26b8f6 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.wgsl
index a78bdd8..38e95cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26b8f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
 
 fn textureLoad_26b8f6() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26b8f6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl
index 2a14ea1..c0c3e4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26c4f8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.dxc.hlsl
index 0afde1aa..b978f17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_26c4f8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26c4f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.fxc.hlsl
index 0afde1aa..b978f17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_26c4f8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26c4f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl
index 31ad363..4295be1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_26c4f8() {
   vec4 res = imageLoad(arg_0, ivec2(1)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_26c4f8() {
   vec4 res = imageLoad(arg_0, ivec2(1)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.spvasm
index 750cc4b..03924fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_26c4f8 "textureLoad_26c4f8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_26c4f8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.wgsl
index c5f643a..cda53ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26c4f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read>;
 
 fn textureLoad_26c4f8() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26c4f8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl
index 3b21a69..0a1cef5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26d7f1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.dxc.hlsl
index 0030d45..16f109e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_26d7f1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26d7f1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.fxc.hlsl
index 0030d45..16f109e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_26d7f1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26d7f1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.spvasm
index 920221b..ecebb0e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_26d7f1 "textureLoad_26d7f1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -81,7 +81,7 @@
 %textureLoad_26d7f1 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.wgsl
index 8e8a936..5087350 100644
--- a/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/26d7f1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_26d7f1() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26d7f1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl
index 5013a92..f9e3fdd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_272e7a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.dxc.hlsl
index 7646c38..b24a1ab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_272e7a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_272e7a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.fxc.hlsl
index 7646c38..b24a1ab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_272e7a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_272e7a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl
index bafc46d..f05fbd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_272e7a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_272e7a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.spvasm
index 382b502..1baff55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_272e7a "textureLoad_272e7a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_272e7a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.wgsl
index 8bb1d5a..baf0e89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/272e7a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
 
 fn textureLoad_272e7a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_272e7a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl
index cabe2ad..258bf0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read>, coords: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276643();
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.dxc.hlsl
index b1eca08..2a496a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_276643() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276643()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.fxc.hlsl
index b1eca08..2a496a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_276643() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276643()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.spvasm
index 8711f9f..8b6cf34 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_276643 "textureLoad_276643"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -73,7 +73,7 @@
 %textureLoad_276643 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.wgsl
index 56c2be3..ee3229b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276643.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read>;
 
 fn textureLoad_276643() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276643();
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl
index 4912acf..121d0e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276a2c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.dxc.hlsl
index 48240f3..d7c09b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_276a2c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276a2c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.fxc.hlsl
index 48240f3..d7c09b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_276a2c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276a2c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl
index 130331d..8143707 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_276a2c() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_276a2c() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.spvasm
index 5c6ff4c..28e52ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_276a2c "textureLoad_276a2c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_276a2c = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.wgsl
index e361bef..f1d318a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/276a2c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read>;
 
 fn textureLoad_276a2c() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276a2c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl
index e1b7a6f..2a5f36c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2887d7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.dxc.hlsl
index a30aadd..58377bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2887d7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2887d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.fxc.hlsl
index a30aadd..58377bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2887d7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2887d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl
index f9c2f09..deec1c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_2887d7() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_2887d7() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.spvasm
index b5a0e93..babb495 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2887d7 "textureLoad_2887d7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_2887d7 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.wgsl
index 6beebda..176328b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2887d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read>;
 
 fn textureLoad_2887d7() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2887d7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl
index 7727482..a203d18 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2a82d9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.dxc.hlsl
index 17b50b0..4824316 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2a82d9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2a82d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.fxc.hlsl
index 17b50b0..4824316 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2a82d9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2a82d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl
index f0c595b..e4acb66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_2a82d9() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_2a82d9() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.spvasm
index 9286b1f..2bee2f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2a82d9 "textureLoad_2a82d9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_2a82d9 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.wgsl
index 468cc2a..866c438 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2a82d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_2a82d9() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2a82d9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl
index d7149bd..e4931d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2ae485();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.dxc.hlsl
index 4f62e55..1b1af78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2ae485() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2ae485()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.fxc.hlsl
index 4f62e55..1b1af78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2ae485() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2ae485()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl
index b0f0251..f5e892e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2ae485() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2ae485() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.spvasm
index cddda98..e7fd28a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2ae485 "textureLoad_2ae485"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_2ae485 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.wgsl
index 17b369f..1a568cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2ae485.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read>;
 
 fn textureLoad_2ae485() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2ae485();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl
index c15b48a..9d5e5be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2c72ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.dxc.hlsl
index 7412ecf..6cbaf96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2c72ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2c72ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.fxc.hlsl
index 7412ecf..6cbaf96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2c72ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2c72ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl
index 9f18682..adee9fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2c72ae() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2c72ae() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.spvasm
index f08066f..2e074c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2c72ae "textureLoad_2c72ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_2c72ae = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.wgsl
index 6a260d9..4a9c6c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2c72ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read>;
 
 fn textureLoad_2c72ae() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2c72ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl
index 958d5e0..10020cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2cee30();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.dxc.hlsl
index 9bbeb7b..608fe71 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2cee30() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2cee30()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.fxc.hlsl
index 9bbeb7b..608fe71 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2cee30() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2cee30()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.spvasm
index ca119b4..2b18985 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2cee30 "textureLoad_2cee30"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_2cee30 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.wgsl
index 2245acc..4e07305 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2cee30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_2cee30() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2cee30();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl
index 367ac41..66e6610 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d479c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl
index 1d4ca45..d86483a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2d479c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl
index 1d4ca45..d86483a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2d479c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl
index 53f6fcb..ce8a556 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_2d479c() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_2d479c() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm
index 2de7b4d..3e227ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2d479c "textureLoad_2d479c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_2d479c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %uint_1
                OpStore %res %19
          %29 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl
index b9a68be..a64d013 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d479c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_2d479c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d479c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl
index fda12db..5279828 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d6cf7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl
index 93bc289..8665536 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2d6cf7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d6cf7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl
index 93bc289..8665536 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2d6cf7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d6cf7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.spvasm
index 2de9c76..cc74a9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2d6cf7 "textureLoad_2d6cf7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -79,7 +79,7 @@
 %textureLoad_2d6cf7 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.wgsl
index b956f8d..1b8b2e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2d6cf7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read>;
 
 fn textureLoad_2d6cf7() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d6cf7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl
index 83ac535..b77ac15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2dbfc2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl
index ef83ad0..0ee1a8c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_2dbfc2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2dbfc2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl
index ef83ad0..0ee1a8c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_2dbfc2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2dbfc2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.spvasm
index 2d1122b..5a11b41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2dbfc2 "textureLoad_2dbfc2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_2dbfc2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.wgsl
index 508ebac..c83b0f5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2dbfc2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_2dbfc2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2dbfc2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl
index 112d8fc..ba18b49 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e09aa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
index 6733e18..27020f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e09aa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
index 6733e18..27020f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e09aa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl
index f7aff64..a95908d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_2e09aa() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_2e09aa() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm
index 2d3ffd6b..86d2e7b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2e09aa "textureLoad_2e09aa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_2e09aa = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Sample %uint_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl
index a5e2b79..d75c7e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e09aa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_2e09aa() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e09aa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl
index b84172c..69c4ac6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e3552();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.dxc.hlsl
index 12b7dcf..9a5b570 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e3552() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e3552()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.fxc.hlsl
index 12b7dcf..9a5b570 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e3552() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e3552()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl
index f9aae2f..a4bcc22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_2e3552() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_2e3552() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.spvasm
index 768edf5..90ecbff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2e3552 "textureLoad_2e3552"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_2e3552 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.wgsl
index 8821f63..4f75390 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2e3552.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_2e3552() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e3552();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl
index 3757f0e..a73fef4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2eaf31();
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.dxc.hlsl
index 537bc12..8f3340a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2eaf31() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2eaf31()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.fxc.hlsl
index 537bc12..8f3340a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2eaf31() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2eaf31()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.spvasm
index 164a61f..4e85266 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2eaf31 "textureLoad_2eaf31"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_2eaf31 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.wgsl
index abae1ea..f4c4f64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/2eaf31.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
 
 fn textureLoad_2eaf31() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2eaf31();
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl
index 5ba8ae4..f91814a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_313c73();
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.dxc.hlsl
index efccc80..7672fbe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_313c73() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_313c73()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.fxc.hlsl
index efccc80..7672fbe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_313c73() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_313c73()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl
index f9f6f33..c70b5af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_313c73() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_313c73() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.spvasm
index 1443ba9..5c78c04 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_313c73 "textureLoad_313c73"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_313c73 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.wgsl
index cbea20e..8f5aa13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/313c73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_313c73() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_313c73();
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl
index 19bbb8c..0e9e382 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_31db4b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.dxc.hlsl
index 4104259..e586ea9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_31db4b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_31db4b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.fxc.hlsl
index 4104259..e586ea9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_31db4b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_31db4b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl
index 1781254..0ef33d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_31db4b() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_31db4b() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.spvasm
index cc3852e..823143a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_31db4b "textureLoad_31db4b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -76,7 +76,7 @@
 %textureLoad_31db4b = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.wgsl
index 266145b..6d1e289 100644
--- a/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/31db4b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read>;
 
 fn textureLoad_31db4b() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_31db4b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl
index 234f192..00e557c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_321210();
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.dxc.hlsl
index 3925d6e..7be3a4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_321210() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_321210()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.fxc.hlsl
index 3925d6e..7be3a4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_321210() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_321210()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl
index db0b50c..94ef2d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_321210() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_321210() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.spvasm
index 69e6eae..69674c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_321210 "textureLoad_321210"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_321210 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.wgsl
index 522508ed..ac49807 100644
--- a/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/321210.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_321210() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_321210();
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl
index 40fb4cd..3e26add 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_32a7b8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.dxc.hlsl
index 8cfdc43..fa2d1d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_32a7b8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_32a7b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.fxc.hlsl
index 8cfdc43..fa2d1d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_32a7b8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_32a7b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.spvasm
index ac81ff1..6fd96fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_32a7b8 "textureLoad_32a7b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_32a7b8 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.wgsl
index febf2c3..38ec370 100644
--- a/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/32a7b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_32a7b8() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_32a7b8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl
index 7670d77..921ce1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_33d3aa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.dxc.hlsl
index 18010c0..32ceac3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_33d3aa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_33d3aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.fxc.hlsl
index 18010c0..32ceac3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_33d3aa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_33d3aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl
index 888772c..54ad641 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_33d3aa() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_33d3aa() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.spvasm
index 0c64bb2..6a60353 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_33d3aa "textureLoad_33d3aa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_33d3aa = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.wgsl
index 11df5a4..9ec21e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/33d3aa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read>;
 
 fn textureLoad_33d3aa() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_33d3aa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl
index 7d75b70..496ce53 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_348827();
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.dxc.hlsl
index a7bb5f1..6576b47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_348827() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_348827()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.fxc.hlsl
index a7bb5f1..6576b47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_348827() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_348827()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl
index 9842b35..57f557f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_348827() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_348827() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.spvasm
index 39d03a8..ce4e5cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_348827 "textureLoad_348827"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_348827 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.wgsl
index e501b11..c7bb12d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/348827.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_348827() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_348827();
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl
index 0127102..4bddbf3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_34d97c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.dxc.hlsl
index c23007d..8913a32 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_34d97c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_34d97c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.fxc.hlsl
index c23007d..8913a32 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_34d97c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_34d97c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.spvasm
index 293f4a5..68d3b22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_34d97c "textureLoad_34d97c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_34d97c = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.wgsl
index b56110a..5f2ce15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/34d97c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_34d97c() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_34d97c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl
index e3eb6af..cda316d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read_write>, coords: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35a5e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.dxc.hlsl
index 22163fc..b35d128 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_35a5e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35a5e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.fxc.hlsl
index 22163fc..b35d128 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_35a5e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35a5e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.spvasm
index f8596ea..09aa898 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_35a5e2 "textureLoad_35a5e2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_35a5e2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.wgsl
index 2163510..bf1b8ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35a5e2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read_write>;
 
 fn textureLoad_35a5e2() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35a5e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl
index 84a308a..e1b1ab6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35d464();
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.dxc.hlsl
index 1d27aa3..3bc0eec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_35d464() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35d464()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.fxc.hlsl
index 1d27aa3..3bc0eec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_35d464() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35d464()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.spvasm
index 120ae80..0c56827 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_35d464 "textureLoad_35d464"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -77,7 +77,7 @@
 %textureLoad_35d464 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.wgsl
index a17a75b..4f70c62 100644
--- a/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/35d464.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_35d464() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35d464();
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl
index 6ce6d0a..881eed5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_374351();
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl
index 939adc6..4dc771a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_374351() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_374351()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.fxc.hlsl
index 939adc6..4dc771a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_374351() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_374351()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl
index 76d2e2f..90e64b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_374351() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_374351() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.spvasm
index 0f1abf7..971fe68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_374351 "textureLoad_374351"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_374351 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.wgsl
index fc1da67..1db8fb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/374351.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read>;
 
 fn textureLoad_374351() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_374351();
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl
index 9e5445f..4c5da5d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_388688();
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.dxc.hlsl
index 84c211f..bb99fc0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_388688() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_388688()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.fxc.hlsl
index 84c211f..bb99fc0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_388688() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_388688()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl
index 6260dff..570eccd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_388688() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_388688() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.spvasm
index b8c8ab4..8def0e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_388688 "textureLoad_388688"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_388688 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.wgsl
index 4146c00..cc00e94 100644
--- a/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/388688.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read>;
 
 fn textureLoad_388688() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_388688();
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl
index bf0ede2..f78a306 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_38f8ab();
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
index a5accc8..8eb4914 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_38f8ab() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
index a5accc8..8eb4914 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_38f8ab() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl
index e38cc46..6b88fb9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_38f8ab() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_38f8ab() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm
index 2767321..61c0ad9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_38f8ab "textureLoad_38f8ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_38f8ab = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %27 Sample %uint_1
                OpStore %res %23
          %32 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl
index 8e873b6..d92bc7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/38f8ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_38f8ab() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_38f8ab();
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl
index 8ae2340..c047d91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39016c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.dxc.hlsl
index beb1502..0490943 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_39016c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39016c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.fxc.hlsl
index beb1502..0490943 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_39016c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39016c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.spvasm
index d6c0c0a..a36a4cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_39016c "textureLoad_39016c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_39016c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.wgsl
index 17c5328..02c215b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39016c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
 
 fn textureLoad_39016c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39016c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl
index 9173738..66b44b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_395447();
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.dxc.hlsl
index fc189bd..ff87dff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_395447() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_395447()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.fxc.hlsl
index fc189bd..ff87dff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_395447() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_395447()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.spvasm
index 4a54e07..d44fc0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_395447 "textureLoad_395447"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_395447 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.wgsl
index 1083e35..3f651a1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/395447.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
 
 fn textureLoad_395447() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_395447();
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl
index 1723a7a..968d0ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39ef40();
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.dxc.hlsl
index 2dc07c0..6c27eb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_39ef40() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39ef40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.fxc.hlsl
index 2dc07c0..6c27eb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_39ef40() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39ef40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl
index e57c9ed..1cc653b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_39ef40() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_39ef40() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.spvasm
index 77c7efc..e44e76b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_39ef40 "textureLoad_39ef40"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_39ef40 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.wgsl
index 7f8ad64..35823b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/39ef40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read>;
 
 fn textureLoad_39ef40() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39ef40();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl
index 29ca783..619a21a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3a2350();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.dxc.hlsl
index 1f10eb0..6e964f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3a2350() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3a2350()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.fxc.hlsl
index 1f10eb0..6e964f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3a2350() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3a2350()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.spvasm
index 557aaee..ca82653 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3a2350 "textureLoad_3a2350"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_3a2350 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.wgsl
index d748324..9adcd34 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3a2350.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_3a2350() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3a2350();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl
index de3c25c..b2d1f9f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3aea13();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.dxc.hlsl
index 83a3ac9..a430904 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_3aea13() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3aea13()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.fxc.hlsl
index 83a3ac9..a430904 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_3aea13() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3aea13()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl
index f2b015f..1fde5d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_3aea13() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_3aea13() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.spvasm
index 3e6774f..e211f07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3aea13 "textureLoad_3aea13"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_3aea13 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.wgsl
index a8b81e0..da9c93d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3aea13.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_3aea13() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3aea13();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl
index ffe549e..8a52804 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3bbc2b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl
index d27d80b..71dad7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3bbc2b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3bbc2b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl
index d27d80b..71dad7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3bbc2b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3bbc2b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl
index c3b2557..9f8cabd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_3bbc2b() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_3bbc2b() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.spvasm
index 3a37f50..5c40749 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3bbc2b "textureLoad_3bbc2b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_3bbc2b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.wgsl
index 5e980b1..b051a13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3bbc2b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
 
 fn textureLoad_3bbc2b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3bbc2b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl
index 5d6fa0f..bd1f01c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c0d9e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl
index 6e29153..1d2e31a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_3c0d9e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c0d9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl
index 6e29153..1d2e31a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_3c0d9e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c0d9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl
index a313f2b..3abb6c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_3c0d9e() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_3c0d9e() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.spvasm
index 0962e2f..7060459 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3c0d9e "textureLoad_3c0d9e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_3c0d9e = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.wgsl
index bad7ad5..7fa9311 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c0d9e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read>;
 
 fn textureLoad_3c0d9e() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c0d9e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl
index 853aefe..4062da1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c9587();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.dxc.hlsl
index 5c67ce9..8b21114 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c9587() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c9587()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.fxc.hlsl
index 5c67ce9..8b21114 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c9587() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c9587()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl
index 2f4b534..7acc146 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3c9587() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3c9587() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.spvasm
index f11bb80..75d8a27 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3c9587 "textureLoad_3c9587"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_3c9587 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.wgsl
index 2f51bc3..6ec3c22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c9587.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read>;
 
 fn textureLoad_3c9587() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c9587();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl
index a330073..afb6f72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c96e8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
index 6fb73a1..a36d0f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c96e8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
index 6fb73a1..a36d0f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c96e8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl
index 72bbf86..b75cb82 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_3c96e8() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_3c96e8() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm
index 818044d..3910c29 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3c96e8 "textureLoad_3c96e8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_3c96e8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl
index f4869c9..13b005f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3c96e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_3c96e8() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c96e8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl
index f088a5c..e34e7b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3cfb9c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl
index 560809c..7035481 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3cfb9c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3cfb9c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl
index 560809c..7035481 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3cfb9c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3cfb9c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.spvasm
index 0bdebd8..34238e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3cfb9c "textureLoad_3cfb9c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -78,7 +78,7 @@
 %textureLoad_3cfb9c = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.wgsl
index 12fc402..aa5affc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3cfb9c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
 
 fn textureLoad_3cfb9c() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3cfb9c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl
index 3e94917..b7d073c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d001b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.dxc.hlsl
index c357299..20d1caa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d001b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d001b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.fxc.hlsl
index c357299..20d1caa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d001b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d001b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl
index 07c2f8a..4b3c4af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_3d001b() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_3d001b() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.spvasm
index 8879219..d39802b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3d001b "textureLoad_3d001b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_3d001b = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.wgsl
index 7e14e3b..52ca528 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d001b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read>;
 
 fn textureLoad_3d001b() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d001b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl
index abd97db..f0529e1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d3fd1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
index 81261b4..645ff09 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d3fd1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
index 81261b4..645ff09 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d3fd1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl
index cc5077b..4cb3f30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_3d3fd1() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_3d3fd1() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm
index 7c3ee3e..459f961 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3d3fd1 "textureLoad_3d3fd1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_3d3fd1 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl
index 8837cb8..4279578 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d3fd1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_3d3fd1() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d3fd1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl
index 402a866..1a466b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d9c90();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.dxc.hlsl
index 28d4a79..664995f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3d9c90() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d9c90()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.fxc.hlsl
index 28d4a79..664995f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3d9c90() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d9c90()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl
index 2c69a25..cb082da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_3d9c90() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_3d9c90() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.spvasm
index 932e222..5dd1fda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3d9c90 "textureLoad_3d9c90"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_3d9c90 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.wgsl
index 5827015..8c0ac24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3d9c90.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read>;
 
 fn textureLoad_3d9c90() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d9c90();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl
index 911cbe1..09b3c14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: i32, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3da3ed();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.dxc.hlsl
index bc9c75c..d617f63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3da3ed() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.fxc.hlsl
index bc9c75c..d617f63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3da3ed() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.glsl
index 8ed9bd0..7b47fb6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_3da3ed() {
   vec4 res = texelFetch(arg_0_1, ivec2(1, 0), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_3da3ed() {
   vec4 res = texelFetch(arg_0_1, ivec2(1, 0), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.spvasm
index 446d7c5..c2a8f79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3da3ed "textureLoad_3da3ed"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_3da3ed = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %int_1 Lod %uint_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.wgsl
index 9aab004..3c47696 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3da3ed.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_3da3ed() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3da3ed();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl
index 8d95bf0..359746e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e16a8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.dxc.hlsl
index 709126f..2656ae7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3e16a8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e16a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.fxc.hlsl
index 709126f..2656ae7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3e16a8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e16a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.spvasm
index 60a6aa8..ff459b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3e16a8 "textureLoad_3e16a8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_3e16a8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.wgsl
index d1c37c3..a9f4063 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e16a8.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read_write>;
 
 fn textureLoad_3e16a8() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e16a8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl
index aaf7f29..9b44005 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e5f6a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl
index 767c786..b60db0b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3e5f6a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e5f6a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl
index 767c786..b60db0b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3e5f6a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e5f6a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl
index add6fe2..2c3f4f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3e5f6a() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3e5f6a() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.spvasm
index 025cd73..7a13e8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3e5f6a "textureLoad_3e5f6a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_3e5f6a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.wgsl
index 8245ab3..b45647e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/3e5f6a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read>;
 
 fn textureLoad_3e5f6a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e5f6a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl
index 3b8a880..65d9b12 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_40ee8b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.dxc.hlsl
index b384b26..8b9bc4c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_40ee8b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_40ee8b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.fxc.hlsl
index b384b26..8b9bc4c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_40ee8b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_40ee8b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.spvasm
index c6bdea9..0868941 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_40ee8b "textureLoad_40ee8b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_40ee8b = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.wgsl
index 801000e..285a4f5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/40ee8b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_40ee8b() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_40ee8b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl
index 6c320af..26c17b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4212a1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.dxc.hlsl
index 358ef58..6881848 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4212a1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4212a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.fxc.hlsl
index 358ef58..6881848 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4212a1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4212a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.spvasm
index 8865663..9c7e504 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4212a1 "textureLoad_4212a1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_4212a1 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.wgsl
index f5b517d..4fefda7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4212a1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
 
 fn textureLoad_4212a1() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4212a1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl
index 6868cc1..4400c0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_424afd();
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.dxc.hlsl
index 13e9e93..092d284 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_424afd() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_424afd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.fxc.hlsl
index 13e9e93..092d284 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_424afd() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_424afd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.spvasm
index 00bee16..db75eed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_424afd "textureLoad_424afd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_424afd = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.wgsl
index 14cd3a2..9e26a3d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/424afd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_424afd() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_424afd();
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl
index 4a8698e..eb7a660 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_42a631();
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.dxc.hlsl
index 6a4943c..d285664 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_42a631() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_42a631()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.fxc.hlsl
index 6a4943c..d285664 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_42a631() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_42a631()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.spvasm
index bd4cf98..13bdafe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_42a631 "textureLoad_42a631"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_42a631 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.wgsl
index c5bf945..de3c5ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/42a631.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
 
 fn textureLoad_42a631() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_42a631();
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl
index 2431201..6a4aefb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43484a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.dxc.hlsl
index 7ddd194..6f4ca44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43484a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43484a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.fxc.hlsl
index 7ddd194..6f4ca44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43484a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43484a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl
index d3adf68..48bf5d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_43484a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_43484a() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.spvasm
index 1483078..fc937df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_43484a "textureLoad_43484a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_43484a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.wgsl
index 603a738..8cde870 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43484a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_43484a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43484a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl
index b36150d..7f73eed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_439e2a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl
index 8c8ea01..dd3c9f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_439e2a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl
index 8c8ea01..dd3c9f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_439e2a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl
index e54406e..1a92679 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_439e2a() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_439e2a() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm
index 18305f1..01bd61f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_439e2a "textureLoad_439e2a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -74,7 +74,7 @@
 %textureLoad_439e2a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %int_1
                OpStore %res %19
          %29 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl
index 1250ffe..2dcc117 100644
--- a/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/439e2a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_439e2a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_439e2a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl
index a0358b6..84471b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43cd86();
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.dxc.hlsl
index 4176d83..5e7511c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43cd86() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43cd86()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.fxc.hlsl
index 4176d83..5e7511c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43cd86() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43cd86()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.spvasm
index 98623e3..b98b5d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_43cd86 "textureLoad_43cd86"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_43cd86 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.wgsl
index 4103384..360a430 100644
--- a/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/43cd86.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
 
 fn textureLoad_43cd86() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43cd86();
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl
index 8148e77..3d61c4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_44c826();
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.dxc.hlsl
index 4b1aad0..f8d2f5b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_44c826() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_44c826()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.fxc.hlsl
index 4b1aad0..f8d2f5b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_44c826() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_44c826()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.spvasm
index 101639e..cb3aae9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_44c826 "textureLoad_44c826"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -77,7 +77,7 @@
 %textureLoad_44c826 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.wgsl
index 41827b2..63fe8c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/44c826.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read>;
 
 fn textureLoad_44c826() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_44c826();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl
index 549d44e..1dcdfe6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4542ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.dxc.hlsl
index bda444f..9ad562a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4542ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4542ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.fxc.hlsl
index bda444f..9ad562a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4542ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4542ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.spvasm
index 6fa73b7..31badd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4542ae "textureLoad_4542ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_4542ae = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.wgsl
index d13b246..ecfaf9e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4542ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_4542ae() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4542ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl
index a8431bd..2bc83e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_454347();
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.dxc.hlsl
index 67ac372..2b871bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_454347() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_454347()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.fxc.hlsl
index 67ac372..2b871bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_454347() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_454347()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl
index 09fb4cd..17c47f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_454347() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_454347() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.spvasm
index 4f4f701..dcb3e11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_454347 "textureLoad_454347"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -76,7 +76,7 @@
 %textureLoad_454347 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.wgsl
index c1b3161..cf295a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/454347.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read>;
 
 fn textureLoad_454347() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_454347();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl
index d3c163c..779b695 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4638a0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.dxc.hlsl
index 41788ad..da655ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4638a0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4638a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.fxc.hlsl
index 41788ad..da655ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4638a0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4638a0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl
index 1bc009e..bcc8bd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4638a0() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4638a0() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.spvasm
index 02a3322..1334726 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4638a0 "textureLoad_4638a0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_4638a0 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.wgsl
index 0f589d4..17e20a2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4638a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_4638a0() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4638a0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl
index 26f4824..0793d51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read_write>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_469912();
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.dxc.hlsl
index a90c8e5..fbfb0d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_469912() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_469912()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.fxc.hlsl
index a90c8e5..fbfb0d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_469912() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_469912()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.spvasm
index ed9217d..77e674c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_469912 "textureLoad_469912"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -78,7 +78,7 @@
 %textureLoad_469912 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.wgsl
index c88cfa10..c6d8192 100644
--- a/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/469912.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
 
 fn textureLoad_469912() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_469912();
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl
index 2694291..43ddaae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46a93f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl
index 3a98179..8938e84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46a93f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl
index 3a98179..8938e84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46a93f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl
index 6bb081a..8361f33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_46a93f() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_46a93f() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm
index 6c75395..2c9ca04 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_46a93f "textureLoad_46a93f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_46a93f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl
index a098c0d..545cb13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46a93f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_46a93f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46a93f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl
index 279b8c6..ddeadf5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46dbf5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.dxc.hlsl
index 84bfcf9..82ebcd1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46dbf5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46dbf5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.fxc.hlsl
index 84bfcf9..82ebcd1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46dbf5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46dbf5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl
index 8792aad..73735be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_46dbf5() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_46dbf5() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.spvasm
index 10753f9..17dafc4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_46dbf5 "textureLoad_46dbf5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_46dbf5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.wgsl
index adba2b9..8b03e60 100644
--- a/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/46dbf5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read>;
 
 fn textureLoad_46dbf5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46dbf5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl
index f6d39bf..a076bb5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_473d3e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.dxc.hlsl
index 67fb568..5ef2033 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_473d3e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_473d3e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.fxc.hlsl
index 67fb568..5ef2033 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_473d3e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_473d3e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.spvasm
index a0bda1d..6fe8c11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_473d3e "textureLoad_473d3e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_473d3e = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.wgsl
index c65d3ba..f9135a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/473d3e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
 
 fn textureLoad_473d3e() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_473d3e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl
index 87ea8e2..a33330a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_47e818();
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl
index 7b29084..ce78d79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_47e818() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl
index 7b29084..ce78d79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_47e818() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl
index 1e6c692..27e7408 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_47e818() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_47e818() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm
index 297f490..1211686 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_47e818 "textureLoad_47e818"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_47e818 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %28 Lod %uint_1
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl
index f7db982..6c9c5a5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/47e818.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_47e818() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_47e818();
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl
index 16b5e8a..0858b1a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_482627();
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.dxc.hlsl
index 5a4b6e6..6279b98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_482627() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_482627()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.fxc.hlsl
index 5a4b6e6..6279b98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_482627() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_482627()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.spvasm
index 3c87e03..0a2fe8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_482627 "textureLoad_482627"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_482627 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.wgsl
index 254be8c..0fd45d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/482627.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_482627() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_482627();
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl
index 110a778..92068fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_484344();
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl
index 85aa5d3..30c0259 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_484344() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_484344()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl
index 85aa5d3..30c0259 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_484344() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_484344()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl
index ed2341e..37b6503 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_484344() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_484344() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm
index 49ed632..3f07945 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_484344 "textureLoad_484344"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_484344 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %int_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl
index 490ab93..cfa2b4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/484344.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_484344() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_484344();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl
index 87410f0..466c256 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4951bb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.dxc.hlsl
index 0c46440..df4b499 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4951bb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4951bb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.fxc.hlsl
index 0c46440..df4b499 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4951bb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4951bb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.spvasm
index 1fe79ff..fedee8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4951bb "textureLoad_4951bb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_4951bb = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.wgsl
index 508681f..4ef2cf0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4951bb.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_4951bb() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4951bb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl
index 6cdfc83..e1186db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_49f76f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl
index 8655366..6df129b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_49f76f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_49f76f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl
index 8655366..6df129b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_49f76f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_49f76f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl
index 934bd94..e4e473e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_49f76f() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_49f76f() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm
index 732afc0..5afc2c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_49f76f "textureLoad_49f76f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_49f76f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %27 Sample %uint_1
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl
index d6bac94..e7b2492 100644
--- a/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/49f76f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_49f76f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_49f76f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl
index f18d877..8ec9343 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4a5c55();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.dxc.hlsl
index c5f70a8..5874874 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4a5c55() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4a5c55()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.fxc.hlsl
index c5f70a8..5874874 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4a5c55() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4a5c55()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.spvasm
index 073a0d1..3067b10 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4a5c55 "textureLoad_4a5c55"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_4a5c55 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.wgsl
index f9b8e35..80aa8cb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4a5c55.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
 
 fn textureLoad_4a5c55() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4a5c55();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl
index df7b4e9..5f8e9f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4acb64();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl
index 08d9838..359b70d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4acb64() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl
index 08d9838..359b70d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4acb64() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl
index 27e5be4..bbb77df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_4acb64() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_4acb64() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm
index 9c96112..65faf70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4acb64 "textureLoad_4acb64"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_4acb64 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl
index be3ed4a..e2755fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4acb64.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_4acb64() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4acb64();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl
index 7a4797a..f99d003 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c15b2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.dxc.hlsl
index c87eb7e..c73a99a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4c15b2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c15b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.fxc.hlsl
index c87eb7e..c73a99a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4c15b2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c15b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.spvasm
index 17777fd..4959239 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c15b2 "textureLoad_4c15b2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_4c15b2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.wgsl
index aa2bc3c..9371ef9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c15b2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_4c15b2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c15b2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl
index 73b9750..c000cd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c1a1e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl
index 2b768c2..ae12151 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4c1a1e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c1a1e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl
index 2b768c2..ae12151 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4c1a1e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c1a1e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.spvasm
index 77a77b2..410213b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c1a1e "textureLoad_4c1a1e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_4c1a1e = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.wgsl
index 5ec6d4d..5e19a58 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c1a1e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
 
 fn textureLoad_4c1a1e() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c1a1e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl
index caa9992..762b840 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: u32, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c423f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.dxc.hlsl
index cf5623c..ddcf8a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4c423f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.fxc.hlsl
index cf5623c..ddcf8a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4c423f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.glsl
index 8e058b8..1ca0f6c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_4c423f() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_4c423f() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.spvasm
index 8a4ac55..733f64d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c423f "textureLoad_4c423f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_4c423f = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %uint_1 Lod %int_1
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.wgsl
index 7a104a7..3bddf29 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c423f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_4c423f() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c423f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl
index acc9ac6..b7a815e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c67be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.dxc.hlsl
index c424f09..2f5cd44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4c67be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c67be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.fxc.hlsl
index c424f09..2f5cd44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4c67be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c67be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl
index e4dd200..45f6b3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_4c67be() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_4c67be() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.spvasm
index fb0027c..bcd9dfe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c67be "textureLoad_4c67be"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_4c67be = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.wgsl
index 63329ab..b0d26b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4c67be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read>;
 
 fn textureLoad_4c67be() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c67be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl
index c1adac2..f2957a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4ccf9a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl
index 409a575..41226c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4ccf9a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4ccf9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl
index 409a575..41226c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4ccf9a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4ccf9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.spvasm
index 867167c..7bd863f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4ccf9a "textureLoad_4ccf9a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_4ccf9a = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.wgsl
index cf6c424..bb66fd0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4ccf9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
 
 fn textureLoad_4ccf9a() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4ccf9a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl
index 9cf5bef..8081412 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4cdca5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.dxc.hlsl
index fa3f5aa..d699738 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4cdca5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4cdca5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.fxc.hlsl
index fa3f5aa..d699738 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4cdca5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4cdca5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl
index 7ddd1a8..289e41b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4cdca5() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4cdca5() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.spvasm
index 4dd83ae..fce506b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4cdca5 "textureLoad_4cdca5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_4cdca5 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.wgsl
index 15104f1..d59f9f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4cdca5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_4cdca5() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4cdca5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl
index d6d6807..5850f43 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4db25c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl
index 841db21..41332c2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_4db25c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl
index 841db21..41332c2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_4db25c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl
index 586f254..f8cb449 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_4db25c() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_4db25c() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm
index dc8a5ab..7c3629a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4db25c "textureLoad_4db25c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_4db25c = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Sample %uint_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl
index c809185..3b27578 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4db25c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_4db25c() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4db25c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl
index 44728c2..c5f5785 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4e2c5c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl
index 557bce9..70b8d70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4e2c5c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4e2c5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl
index 557bce9..70b8d70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4e2c5c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4e2c5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.spvasm
index b104baa..ee37e73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4e2c5c "textureLoad_4e2c5c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_4e2c5c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.wgsl
index e03dcc6..a302512 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4e2c5c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_4e2c5c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4e2c5c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl
index aadb08a..284af1c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f5496();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.dxc.hlsl
index 9b07bc8..514d9e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4f5496() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f5496()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.fxc.hlsl
index 9b07bc8..514d9e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4f5496() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f5496()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl
index 1c7b9b9..60cf4b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_4f5496() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_4f5496() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.spvasm
index 0ee5811..7cc8b48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4f5496 "textureLoad_4f5496"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_4f5496 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.wgsl
index 18117c1..cf3abbd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f5496.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_4f5496() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f5496();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl
index 57b7b44..8962a75 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f90bb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.dxc.hlsl
index 98863e4..9601d10 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4f90bb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f90bb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.fxc.hlsl
index 98863e4..9601d10 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4f90bb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f90bb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.spvasm
index 338b91b..e5d2b39 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4f90bb "textureLoad_4f90bb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_4f90bb = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.wgsl
index 79adc8c..b2fdae2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4f90bb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
 
 fn textureLoad_4f90bb() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f90bb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl
index fd5df86..1f5b6d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fa6ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl
index 91ab0e7..0652f02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4fa6ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fa6ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl
index 91ab0e7..0652f02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4fa6ae() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fa6ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl
index 4b6119e..dc8c85f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_4fa6ae() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_4fa6ae() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.spvasm
index 101d72e..0dae450 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4fa6ae "textureLoad_4fa6ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_4fa6ae = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.wgsl
index 0709878..50063d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fa6ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read>;
 
 fn textureLoad_4fa6ae() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fa6ae();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl
index 64e6197..fabbc25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fd803();
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl
index e7e58b1..590a015 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4fd803() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl
index e7e58b1..590a015 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4fd803() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl
index 2f65353..5a1108c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_4fd803() {
   ivec4 res = texelFetch(arg_0_1, ivec3(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_4fd803() {
   ivec4 res = texelFetch(arg_0_1, ivec3(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm
index f6b79b1..5e0c9be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4fd803 "textureLoad_4fd803"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_4fd803 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %27 Lod %int_1
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl
index d36d93e..0ad8242 100644
--- a/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/4fd803.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_4fd803() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fd803();
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl
index 960b674..4283242 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_505aa2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.dxc.hlsl
index 49c5858..8ce2dbe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_505aa2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_505aa2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.fxc.hlsl
index 49c5858..8ce2dbe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_505aa2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_505aa2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl
index 71bf83a..b3e3c1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_505aa2() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_505aa2() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.spvasm
index b2acf27..a17f094 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_505aa2 "textureLoad_505aa2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_505aa2 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.wgsl
index 09d00ab..4f6d031 100644
--- a/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/505aa2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read>;
 
 fn textureLoad_505aa2() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_505aa2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl
index b9dada7..baf381c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_50915c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.dxc.hlsl
index 2866f44..d9e0757 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_50915c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_50915c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.fxc.hlsl
index 2866f44..d9e0757 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_50915c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_50915c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl
index 42f50a8..3f37537 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_50915c() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_50915c() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.spvasm
index 825ad40..75b98c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_50915c "textureLoad_50915c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_50915c = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.wgsl
index d47b917..f2ba925 100644
--- a/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/50915c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read>;
 
 fn textureLoad_50915c() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_50915c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl
index 2de069e..e6fb0c1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5154e1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.dxc.hlsl
index 7e17686..329909b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5154e1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5154e1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.fxc.hlsl
index 7e17686..329909b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5154e1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5154e1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.spvasm
index 65f95ae..d28f633 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5154e1 "textureLoad_5154e1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_5154e1 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.wgsl
index 3c0efcc..cd9effe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5154e1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
 
 fn textureLoad_5154e1() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5154e1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl
index 6a0b5ae..3de5742 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_519ab5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.dxc.hlsl
index f3f9c55..a71294b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_519ab5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_519ab5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.fxc.hlsl
index f3f9c55..a71294b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_519ab5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_519ab5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl
index 1b954eb..a53285b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_519ab5() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_519ab5() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.spvasm
index c3c739d..0b46194 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_519ab5 "textureLoad_519ab5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_519ab5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.wgsl
index fc0ea6a..d347968 100644
--- a/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/519ab5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read>;
 
 fn textureLoad_519ab5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_519ab5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl
index 2a39a4d..e03e3af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53378a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.dxc.hlsl
index 0892ec5..befced5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_53378a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53378a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.fxc.hlsl
index 0892ec5..befced5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_53378a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53378a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.spvasm
index 3f6af92..ccc642b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_53378a "textureLoad_53378a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -80,7 +80,7 @@
 %textureLoad_53378a = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.wgsl
index d023c34..d266db9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53378a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read>;
 
 fn textureLoad_53378a() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53378a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl
index a32e400..747de52 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53941c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.dxc.hlsl
index 152bb76..6e1deba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_53941c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53941c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.fxc.hlsl
index 152bb76..6e1deba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_53941c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53941c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.spvasm
index 71e42a6..373967f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_53941c "textureLoad_53941c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_53941c = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.wgsl
index e55c71c..8a69496 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53941c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_53941c() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53941c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl
index 5cea9bc..226ee76 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53e142();
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl
index 083cc66..17b0d25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_53e142() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53e142()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl
index 083cc66..17b0d25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_53e142() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53e142()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl
index e8589a1..6c4271d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_53e142() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_53e142() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm
index 189bc5b..3edec30 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_53e142 "textureLoad_53e142"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_53e142 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl
index 1c352fd..d872044 100644
--- a/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/53e142.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_53e142() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53e142();
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl
index c772e09..fd620d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54a59b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl
index 508d898..53e8d17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54a59b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl
index 508d898..53e8d17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54a59b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl
index aec6109..75b187d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_54a59b() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_54a59b() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm
index 8debc22..4af18b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_54a59b "textureLoad_54a59b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_54a59b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl
index d101bff..d334cda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54a59b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_54a59b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54a59b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl
index 2694bcb..fb67a4d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54e0ce();
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.dxc.hlsl
index 10d11f6..e4af01e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54e0ce() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54e0ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.fxc.hlsl
index 10d11f6..e4af01e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54e0ce() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54e0ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl
index d1aeb3d..4a4b722 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_54e0ce() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_54e0ce() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.spvasm
index ab9ca27..64cf7f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_54e0ce "textureLoad_54e0ce"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_54e0ce = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.wgsl
index 23d754a..3ad115e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54e0ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read>;
 
 fn textureLoad_54e0ce() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54e0ce();
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl
index 453101b..8932f5f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54fb38();
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.dxc.hlsl
index 99cabf3..a888d6d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_54fb38() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54fb38()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.fxc.hlsl
index 99cabf3..a888d6d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_54fb38() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54fb38()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.spvasm
index 3972fcd..d074ed0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_54fb38 "textureLoad_54fb38"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_54fb38 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.wgsl
index b65d3f4..42608aa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/54fb38.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_54fb38() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54fb38();
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl
index a999e86..6a7f798 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_55e745();
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.dxc.hlsl
index 79d17a3..dcc6354 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_55e745() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_55e745()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.fxc.hlsl
index 79d17a3..dcc6354 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_55e745() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_55e745()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl
index f084628..d41c0ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_55e745() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_55e745() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.spvasm
index b0a1800..91b0e5b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_55e745 "textureLoad_55e745"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -80,7 +80,7 @@
 %textureLoad_55e745 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.wgsl
index 6deca24..5cb94d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/55e745.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_55e745() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_55e745();
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl
index 5fa26ca..909ab83 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_560573();
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.dxc.hlsl
index 6d17030..8fe698c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_560573() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_560573()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.fxc.hlsl
index 6d17030..8fe698c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_560573() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_560573()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl
index 4f96219..1c2a5b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_560573() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_560573() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.spvasm
index ca89eb0..c81137d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_560573 "textureLoad_560573"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_560573 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.wgsl
index 974f76d..045ddad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/560573.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_560573() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_560573();
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl
index 3cbf4b5..b09466e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_56a000();
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.dxc.hlsl
index 950f04c..1e23262 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_56a000() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_56a000()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.fxc.hlsl
index 950f04c..1e23262 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_56a000() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_56a000()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.spvasm
index 4e2738c..d52487b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_56a000 "textureLoad_56a000"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_56a000 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.wgsl
index 648e9ec..04045ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/56a000.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
 
 fn textureLoad_56a000() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_56a000();
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl
index 570a585..26ef5b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_582015();
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.dxc.hlsl
index fdfc16b..8a4bbaf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_582015() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_582015()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.fxc.hlsl
index fdfc16b..8a4bbaf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_582015() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_582015()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl
index d549f79..a82c35a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_582015() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_582015() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.spvasm
index 9f1dafa..ad5fef6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_582015 "textureLoad_582015"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_582015 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.wgsl
index 936de35..4278851 100644
--- a/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/582015.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_582015() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_582015();
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl
index 29e3d39..a881b4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_589eaa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.dxc.hlsl
index dd45199..1630949 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_589eaa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_589eaa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.fxc.hlsl
index dd45199..1630949 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_589eaa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_589eaa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl
index 3156512..7b7aa53 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_589eaa() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_589eaa() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.spvasm
index c5c38c4..2679b8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_589eaa "textureLoad_589eaa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_589eaa = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.wgsl
index 7042055..73a57b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/589eaa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read>;
 
 fn textureLoad_589eaa() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_589eaa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl
index 02a00a9..74d8f97 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: i32, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5a2f9d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl
index 6d8d5e8..8c75e7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5a2f9d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl
index 6d8d5e8..8c75e7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5a2f9d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.glsl
index f118ae3..3c9c342 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_5a2f9d() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1, 0), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_5a2f9d() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1, 0), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.spvasm
index 320f176..716db92 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5a2f9d "textureLoad_5a2f9d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -77,7 +77,7 @@
 %textureLoad_5a2f9d = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %int_1 Lod %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.wgsl
index fc533eb..14f792d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5a2f9d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_5a2f9d() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5a2f9d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl
index d42c538..bbbeaf7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5abbf2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.dxc.hlsl
index 9e36bb6..fa3fb73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5abbf2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5abbf2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.fxc.hlsl
index 9e36bb6..fa3fb73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5abbf2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5abbf2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.spvasm
index d6ba41f..827e281 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5abbf2 "textureLoad_5abbf2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -73,7 +73,7 @@
 %textureLoad_5abbf2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.wgsl
index 849c0dd..8c8fbdf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5abbf2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read>;
 
 fn textureLoad_5abbf2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5abbf2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl
index 9182cf9..1938c3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b0f5b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl
index ab49c3a..8f524c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5b0f5b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b0f5b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl
index ab49c3a..8f524c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5b0f5b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b0f5b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.spvasm
index 4e2ed18..484fc34 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5b0f5b "textureLoad_5b0f5b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -78,7 +78,7 @@
 %textureLoad_5b0f5b = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.wgsl
index 2a83563..2be0087 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b0f5b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
 
 fn textureLoad_5b0f5b() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b0f5b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl
index 807c9ec..ccf0d44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b4947();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.dxc.hlsl
index 684cf18..5a5df7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5b4947() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b4947()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.fxc.hlsl
index 684cf18..5a5df7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5b4947() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b4947()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.spvasm
index d59af7a..377d679 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5b4947 "textureLoad_5b4947"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_5b4947 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.wgsl
index 2e3ada6..88a7bc1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5b4947.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
 
 fn textureLoad_5b4947() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b4947();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl
index 55837f6..cee9685 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5bb7fb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl
index 1f2b416..9216146 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5bb7fb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5bb7fb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl
index 1f2b416..9216146 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5bb7fb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5bb7fb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.spvasm
index 0fa7a9e..874ff94 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5bb7fb "textureLoad_5bb7fb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_5bb7fb = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.wgsl
index 6fa3ad0..e783e78 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5bb7fb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read>;
 
 fn textureLoad_5bb7fb() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5bb7fb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl
index 69667d0..bec2e77 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5c69f8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.dxc.hlsl
index 4f34277..97e51ef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5c69f8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5c69f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.fxc.hlsl
index 4f34277..97e51ef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5c69f8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5c69f8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.spvasm
index 422234d..1e6930e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5c69f8 "textureLoad_5c69f8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_5c69f8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.wgsl
index 862bc77..e6173fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5c69f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
 
 fn textureLoad_5c69f8() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5c69f8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl
index ed5f92c..868e21a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cd3fc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl
index 7d57abf..8e6f43a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5cd3fc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cd3fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl
index 7d57abf..8e6f43a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5cd3fc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cd3fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl
index 5d00933..4056111 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_5cd3fc() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_5cd3fc() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.spvasm
index e46546b..e1a2279 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5cd3fc "textureLoad_5cd3fc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_5cd3fc = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.wgsl
index c2fbc3e..3fab4f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cd3fc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
 
 fn textureLoad_5cd3fc() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cd3fc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl
index b3d1890..626ce79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cee3b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.dxc.hlsl
index 5a706c5..2451c159 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5cee3b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cee3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.fxc.hlsl
index 5a706c5..2451c159 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5cee3b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cee3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl
index c6730eb..84b77fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.spvasm
index 0dfac5c..480d2ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5cee3b "textureLoad_5cee3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_5cee3b = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.wgsl
index cf09efa..bec1ac7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5cee3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read>;
 
 fn textureLoad_5cee3b() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cee3b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl
index 6294b2c..5f1a4be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d0a2f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl
index 1f409ac..d9c6543 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5d0a2f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d0a2f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl
index 1f409ac..d9c6543 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5d0a2f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d0a2f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl
index 4172bdb..44130e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_5d0a2f() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_5d0a2f() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.spvasm
index edb214a..00c4f73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5d0a2f "textureLoad_5d0a2f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_5d0a2f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.wgsl
index 1899b9c..944773e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d0a2f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_5d0a2f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d0a2f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl
index 79398f5..44b37f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d4042();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.dxc.hlsl
index af2fe72..af173e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5d4042() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d4042()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.fxc.hlsl
index af2fe72..af173e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5d4042() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d4042()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl
index baa0df4..1f5b975 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5d4042() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5d4042() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.spvasm
index 2701807..ac51959 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5d4042 "textureLoad_5d4042"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_5d4042 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.wgsl
index 91daf35..5501cca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5d4042.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_5d4042() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d4042();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl
index 049aee7..196f7c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5dd4c7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl
index e616b43..e173fe8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5dd4c7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5dd4c7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl
index e616b43..e173fe8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5dd4c7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5dd4c7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.spvasm
index 35dd597..6febfb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5dd4c7 "textureLoad_5dd4c7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -76,7 +76,7 @@
 %textureLoad_5dd4c7 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.wgsl
index 2523d73..da60b94 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5dd4c7.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read>;
 
 fn textureLoad_5dd4c7() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5dd4c7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl
index f40d7ba..7792c95 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read_write>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e17a7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.dxc.hlsl
index 95a3b4f..07da72e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5e17a7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e17a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.fxc.hlsl
index 95a3b4f..07da72e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5e17a7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e17a7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.spvasm
index 7acc2ef..cd1e0a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5e17a7 "textureLoad_5e17a7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -77,7 +77,7 @@
 %textureLoad_5e17a7 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.wgsl
index 0be5148..77473cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e17a7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
 
 fn textureLoad_5e17a7() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e17a7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl
index 46afff7..8dea0da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e1843();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.dxc.hlsl
index cb4882c..9da5e4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5e1843() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e1843()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.fxc.hlsl
index cb4882c..9da5e4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5e1843() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e1843()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.spvasm
index 95ef37e..080d722 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5e1843 "textureLoad_5e1843"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_5e1843 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.wgsl
index 30d3cb1..3032a21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e1843.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_5e1843() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e1843();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl
index 5934d75..bdd2d59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e8d3f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl
index 02e7492..b2fc367 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5e8d3f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e8d3f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl
index 02e7492..b2fc367 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5e8d3f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e8d3f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl
index 8816c86..c8cc32e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_5e8d3f() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_5e8d3f() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.spvasm
index e510bf1..4013e6e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5e8d3f "textureLoad_5e8d3f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_5e8d3f = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.wgsl
index f95f13a..0c3984f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5e8d3f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read>;
 
 fn textureLoad_5e8d3f() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e8d3f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl
index 6f02e3d..2a8cf82 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5ed6ad();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl
index 2b1f05e..4de4aa6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5ed6ad() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5ed6ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl
index 2b1f05e..4de4aa6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5ed6ad() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5ed6ad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.spvasm
index 478238f..b1a31bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5ed6ad "textureLoad_5ed6ad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_5ed6ad = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.wgsl
index 0726ede..b639146 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5ed6ad.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_5ed6ad() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5ed6ad();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl
index 4130e1b..ce86d25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5f4473();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.dxc.hlsl
index f92719d..6f77c22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5f4473() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5f4473()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.fxc.hlsl
index f92719d..6f77c22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5f4473() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5f4473()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl
index 059c555..2ed6865 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5f4473() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5f4473() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.spvasm
index 3c71c18..8182573 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5f4473 "textureLoad_5f4473"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_5f4473 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.wgsl
index 8f17001..fe08eda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5f4473.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read>;
 
 fn textureLoad_5f4473() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5f4473();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl
index 55040a7..609622a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5feb4d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.dxc.hlsl
index aa97460..3c229bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5feb4d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5feb4d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.fxc.hlsl
index aa97460..3c229bb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5feb4d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5feb4d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl
index e62e003..e7a14fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5feb4d() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5feb4d() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.spvasm
index 2f076b6..9ab8e37 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5feb4d "textureLoad_5feb4d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_5feb4d = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.wgsl
index f9ff3a2..9104682 100644
--- a/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/5feb4d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read>;
 
 fn textureLoad_5feb4d() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5feb4d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl
index 5c2883d..fcf4efe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6154d4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl
index c38b63f..9723d59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6154d4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6154d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl
index c38b63f..9723d59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6154d4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6154d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl
index 040b514..f913511 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6154d4() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6154d4() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm
index 47541b8..43dc142 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6154d4 "textureLoad_6154d4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_6154d4 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %28 Lod %int_1
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl
index a6b75e4..9e54dd5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6154d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_6154d4() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6154d4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl
index 4fb510d..f033bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_61e2e8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.dxc.hlsl
index b0c7dc0..7172978 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_61e2e8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_61e2e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.fxc.hlsl
index b0c7dc0..7172978 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_61e2e8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_61e2e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.spvasm
index bd15377..38ce9c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_61e2e8 "textureLoad_61e2e8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_61e2e8 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.wgsl
index 269fcbc..24a7ee8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/61e2e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
 
 fn textureLoad_61e2e8() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_61e2e8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl
index 2775b00..f88a2a1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_620caa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.dxc.hlsl
index c1ebaa8..9f6ec9a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_620caa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_620caa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.fxc.hlsl
index c1ebaa8..9f6ec9a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_620caa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_620caa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.spvasm
index 3d0f259..b3b357b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_620caa "textureLoad_620caa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_620caa = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.wgsl
index ca3888b..29b9a96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/620caa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read>;
 
 fn textureLoad_620caa() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_620caa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl
index c0ccb51..16542fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_622278();
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.dxc.hlsl
index 35e7f8e..3af60dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_622278() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_622278()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.fxc.hlsl
index 35e7f8e..3af60dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_622278() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_622278()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.spvasm
index c0e2ed8..012932d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_622278 "textureLoad_622278"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -78,7 +78,7 @@
 %textureLoad_622278 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.wgsl
index bc50eea..ac5daa8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/622278.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
 
 fn textureLoad_622278() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_622278();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl
index 5f4f814..d2568a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6273b1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl
index 67ca809..48c733b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6273b1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl
index 67ca809..48c733b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6273b1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl
index 1d4b66d..d64473b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6273b1() {
   float res = texelFetch(arg_0_1, ivec2(1), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6273b1() {
   float res = texelFetch(arg_0_1, ivec2(1), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm
index ac5e692..652a893 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6273b1 "textureLoad_6273b1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_6273b1 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Sample %int_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl
index bafe54b..f143c4b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6273b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6273b1() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6273b1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl
index cc8af96..c5a31c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d125();
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.dxc.hlsl
index c68e57b..884d9cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_62d125() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d125()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.fxc.hlsl
index c68e57b..884d9cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_62d125() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d125()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl
index 7a9f0a8..386114f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_62d125() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_62d125() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.spvasm
index 7e104dc..4ebc528 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_62d125 "textureLoad_62d125"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_62d125 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.wgsl
index 66dee45..d552ae6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d125.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read>;
 
 fn textureLoad_62d125() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d125();
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl
index 5c8d568..68e67b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: i32, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d1de();
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.dxc.hlsl
index 35f8b78..efc9034 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_62d1de() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.fxc.hlsl
index 35f8b78..efc9034 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_62d1de() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.glsl
index ddfa48b..df8656a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_62d1de() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1, 0), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_62d1de() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1, 0), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.spvasm
index 0303555..9d46f7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_62d1de "textureLoad_62d1de"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
        %uint = OpTypeInt 32 0
@@ -77,7 +77,7 @@
 %textureLoad_62d1de = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %int_1 Lod %uint_1
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.wgsl
index 1e133de..07fbaac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/62d1de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_62d1de() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d1de();
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl
index 1cf188e..178d3f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_639962();
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl
index 93c3c18..eb2e250 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_639962() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_639962()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl
index 93c3c18..eb2e250 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_639962() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_639962()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl
index 02c6091..c5cc3a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_639962() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_639962() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm
index 629882d..faf4514 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_639962 "textureLoad_639962"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_639962 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %28 Sample %uint_1
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl
index 0d25025..ad81b1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/639962.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_639962() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_639962();
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl
index e29e776..0e1f57ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_63be18();
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.dxc.hlsl
index f46a8cf..d7a887e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_63be18() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_63be18()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.fxc.hlsl
index f46a8cf..d7a887e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_63be18() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_63be18()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.spvasm
index f0ab93f..9ced023 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_63be18 "textureLoad_63be18"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -80,7 +80,7 @@
 %textureLoad_63be18 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.wgsl
index 056e22a..99cfec8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/63be18.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_63be18() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_63be18();
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl
index 3b1e4fc..91c12a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_64c372();
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.dxc.hlsl
index d86fee3..47d31ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_64c372() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_64c372()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.fxc.hlsl
index d86fee3..47d31ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_64c372() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_64c372()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.spvasm
index 5081ada..2cfca9a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_64c372 "textureLoad_64c372"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_64c372 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.wgsl
index b9c072a..61c25c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/64c372.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_64c372() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_64c372();
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl
index 84bbd9b..1c5cd63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_656d76();
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl
index 4967e10..c0a742d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_656d76() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_656d76()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl
index 4967e10..c0a742d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_656d76() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_656d76()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl
index b46add0..8177b24 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_656d76() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_656d76() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm
index dc7f051..66f2d47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_656d76 "textureLoad_656d76"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_656d76 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl
index 3fbf82a..30da5f5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/656d76.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_656d76() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_656d76();
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl
index 1e3060b..9b08c58 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_65a4d0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.dxc.hlsl
index cb6bfb1..3cdea6f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_65a4d0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_65a4d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.fxc.hlsl
index cb6bfb1..3cdea6f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_65a4d0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_65a4d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl
index 540c1e4..69fcdf8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_65a4d0() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_65a4d0() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.spvasm
index 666d365..a993ee9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_65a4d0 "textureLoad_65a4d0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_65a4d0 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.wgsl
index fe295a4..9645714 100644
--- a/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/65a4d0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_65a4d0() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_65a4d0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl
index 19d5488..0931a3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_666010();
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.dxc.hlsl
index 727fe34..6934614 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_666010() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_666010()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.fxc.hlsl
index 727fe34..6934614 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_666010() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_666010()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.spvasm
index 76dc530..5645f51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_666010 "textureLoad_666010"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_666010 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.wgsl
index fc78df1..ed851dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/666010.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
 
 fn textureLoad_666010() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_666010();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl
index 978ad04..356245a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6678b6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.dxc.hlsl
index c48de7a..4ea6128 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_6678b6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6678b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.fxc.hlsl
index c48de7a..4ea6128 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_6678b6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6678b6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl
index 919dc96..8b2523a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_6678b6() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_6678b6() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.spvasm
index f9cbd70..3058d98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6678b6 "textureLoad_6678b6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -78,7 +78,7 @@
 %textureLoad_6678b6 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.wgsl
index 0948e91..5b9b3b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6678b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read>;
 
 fn textureLoad_6678b6() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6678b6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl
index ae06dd0..472797e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_66be47();
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl
index 680cf3c..7820d68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_66be47() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_66be47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl
index 680cf3c..7820d68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_66be47() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_66be47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl
index f3545f9..085d13e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_66be47() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_66be47() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm
index 6009d92..39bd870 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_66be47 "textureLoad_66be47"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_66be47 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %int %26 0
          %28 = OpCompositeExtract %int %26 1
          %29 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl
index b72de8d..6dcf257 100644
--- a/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/66be47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_66be47() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_66be47();
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl
index e40a799..d0051db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67d826();
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.dxc.hlsl
index ba7d8c2..b617b4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_67d826() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67d826()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.fxc.hlsl
index ba7d8c2..b617b4e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_67d826() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67d826()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl
index fc8c984..11b03e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_67d826() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_67d826() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.spvasm
index 3e135d2..8b1ccc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_67d826 "textureLoad_67d826"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_67d826 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.wgsl
index c73a321..8f9a72c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67d826.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_67d826() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67d826();
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl
index 11cf582..8bed3e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67edca();
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.dxc.hlsl
index 5d219aa..14acc2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_67edca() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67edca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.fxc.hlsl
index 5d219aa..14acc2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_67edca() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67edca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl
index 2dcaded..3c5a5c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_67edca() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_67edca() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.spvasm
index b2aff19..ab1a946 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_67edca "textureLoad_67edca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_67edca = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.wgsl
index 98bdeee..e1b99eb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/67edca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read>;
 
 fn textureLoad_67edca() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67edca();
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl
index abf8de5..971b533 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_68d273();
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.dxc.hlsl
index 1778c47..783f6f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_68d273() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_68d273()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.fxc.hlsl
index 1778c47..783f6f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_68d273() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_68d273()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.spvasm
index 9751c4f..c223941 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_68d273 "textureLoad_68d273"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_68d273 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.wgsl
index 450ff24..fa37627 100644
--- a/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/68d273.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
 
 fn textureLoad_68d273() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_68d273();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl
index 2aab9f8..b935d50 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6925bc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl
index c02939b..8f7896b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6925bc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl
index c02939b..8f7896b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6925bc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl
index 7a8ac7e..6ce278f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6925bc() {
   float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6925bc() {
   float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm
index 06fd246..4acbc45 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6925bc "textureLoad_6925bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_6925bc = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Sample %uint_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl
index bb26e05..27982a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6925bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6925bc() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6925bc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl
index d57be3f..ac009d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_69fee5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.dxc.hlsl
index 8f79e7a..73bde14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_69fee5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_69fee5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.fxc.hlsl
index 8f79e7a..73bde14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_69fee5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_69fee5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl
index b24be2d..b89d220 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_69fee5() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_69fee5() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.spvasm
index 372f29b..f6cc6f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_69fee5 "textureLoad_69fee5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_69fee5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.wgsl
index 5f9e573..093beb5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/69fee5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_69fee5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_69fee5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl
index 83709ff..bb75501 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6a6871();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.dxc.hlsl
index a3bffc1..1fe4655 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6a6871() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6a6871()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.fxc.hlsl
index a3bffc1..1fe4655 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6a6871() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6a6871()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.spvasm
index fcce9d4..ebbf28b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6a6871 "textureLoad_6a6871"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_6a6871 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.wgsl
index c4e56e3..43da15b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6a6871.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
 
 fn textureLoad_6a6871() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6a6871();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl
index 38313f5..c00d4ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: i32, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b77d4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.dxc.hlsl
index 46b87d6..09baf195 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6b77d4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b77d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.fxc.hlsl
index 46b87d6..09baf195 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6b77d4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b77d4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.glsl
index a57f022..f8b2aa6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6b77d4() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1, 0), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6b77d4() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1, 0), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.spvasm
index a4ac479..3234013 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6b77d4 "textureLoad_6b77d4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureLoad_6b77d4 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %int_1 Lod %uint_1
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.wgsl
index 5e98b7e1..eb7260e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b77d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_6b77d4() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b77d4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl
index 6c4f665..644cd40 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b8ba6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl
index 3ebbcb0..6815b02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6b8ba6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b8ba6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl
index 3ebbcb0..6815b02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6b8ba6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b8ba6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.spvasm
index 8780342..047ceb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6b8ba6 "textureLoad_6b8ba6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_6b8ba6 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.wgsl
index b16ce63..b2d5fdf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6b8ba6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_6b8ba6() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b8ba6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl
index 574fea2..df0b96f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6ba9ab();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl
index 382e613..65c0431 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6ba9ab() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6ba9ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl
index 382e613..65c0431 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6ba9ab() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6ba9ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.spvasm
index 0652915..e505885 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6ba9ab "textureLoad_6ba9ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_6ba9ab = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.wgsl
index a62213a..12f4ae3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6ba9ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_6ba9ab() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6ba9ab();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl
index 90c9e62..b7565e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf3e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl
index d3d32d6..711450a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6bf3e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf3e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl
index d3d32d6..711450a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6bf3e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf3e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.spvasm
index a604bd2..4f072d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6bf3e2 "textureLoad_6bf3e2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_6bf3e2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.wgsl
index e780ac4..8517861 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf3e2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_6bf3e2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf3e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl
index f49aa50..6948346 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf4b7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
index 5173e51..2378c93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6bf4b7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf4b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
index 5173e51..2378c93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6bf4b7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf4b7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl
index dffeb4b..3fcc51e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_6bf4b7() {
   uvec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_6bf4b7() {
   uvec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm
index f421033..72f612f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6bf4b7 "textureLoad_6bf4b7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -78,7 +78,7 @@
 %textureLoad_6bf4b7 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %28 Lod %uint_1
                OpStore %res %23
          %32 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl
index 47fba42..2d840f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6bf4b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_6bf4b7() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf4b7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl
index dc0e2d5..c7314a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d1fb4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl
index d1d0f2a..d961a84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_6d1fb4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d1fb4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl
index d1d0f2a..d961a84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_6d1fb4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d1fb4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl
index ef46e26..c571692 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_6d1fb4() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_6d1fb4() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.spvasm
index 2f58cf2..66b776d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6d1fb4 "textureLoad_6d1fb4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_6d1fb4 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.wgsl
index ae08440..93dd1b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d1fb4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_6d1fb4() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d1fb4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl
index efa821d..875d195 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: u32, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d376a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.dxc.hlsl
index e6ceabc..316f516 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6d376a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.fxc.hlsl
index e6ceabc..316f516 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6d376a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.glsl
index 6a3f71a..8ace413 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_6d376a() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_6d376a() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.spvasm
index e47d419..9bc9ca0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6d376a "textureLoad_6d376a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_6d376a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %uint_1 Lod %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.wgsl
index 1289be8..77c9c22 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d376a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_6d376a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d376a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl
index dc47bc8..4ff02f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d7bb5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl
index 826f87c..dad4835 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6d7bb5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d7bb5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl
index 826f87c..dad4835 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6d7bb5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d7bb5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.spvasm
index 7a8cc12..fdf7213 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6d7bb5 "textureLoad_6d7bb5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_6d7bb5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.wgsl
index 5665649..cfdc2d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6d7bb5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_6d7bb5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d7bb5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl
index 97ada9b..cec52c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6e903f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.dxc.hlsl
index 6f1d9ec..12b77b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_6e903f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6e903f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.fxc.hlsl
index 6f1d9ec..12b77b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_6e903f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6e903f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.spvasm
index a806a8c..38ffa8d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6e903f "textureLoad_6e903f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_6e903f = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.wgsl
index dbd070f..dae6991 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6e903f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
 
 fn textureLoad_6e903f() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6e903f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl
index 715a820..2fd7e6b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0370();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.dxc.hlsl
index a29d596..2cc8de4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f0370() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0370()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.fxc.hlsl
index a29d596..2cc8de4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f0370() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0370()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.spvasm
index 05cb211..2b0ab96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f0370 "textureLoad_6f0370"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_6f0370 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.wgsl
index 053c0c9..0b22a8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0370.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read>;
 
 fn textureLoad_6f0370() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0370();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl
index 217eea1..a582304 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0ea8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl
index 0dcfd90..6e690cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f0ea8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0ea8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl
index 0dcfd90..6e690cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f0ea8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0ea8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.spvasm
index 2e814fb..684586c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f0ea8 "textureLoad_6f0ea8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_6f0ea8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.wgsl
index 3bc6de4..de4329d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f0ea8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
 
 fn textureLoad_6f0ea8() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0ea8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl
index 26d76f0..1509584 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f1750();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.dxc.hlsl
index b410464..88863ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f1750() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f1750()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.fxc.hlsl
index b410464..88863ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f1750() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f1750()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl
index c387af7..daaa4169 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_6f1750() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_6f1750() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.spvasm
index fbee8ec..d84d79e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f1750 "textureLoad_6f1750"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_6f1750 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.wgsl
index 877a744..4f617e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f1750.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_6f1750() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f1750();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl
index 1c6e7cb..ddaa761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f8927();
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.dxc.hlsl
index 3d4a6e7..39d3be9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f8927() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f8927()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.fxc.hlsl
index 3d4a6e7..39d3be9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f8927() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f8927()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.spvasm
index 4f2729c..e752914 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f8927 "textureLoad_6f8927"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_6f8927 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.wgsl
index 46a4aae..a6fd167 100644
--- a/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/6f8927.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_6f8927() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f8927();
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl
index 59c4274..8e37101 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_714471();
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl
index ecd95f6..c7d0613 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_714471() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_714471()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl
index ecd95f6..c7d0613 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_714471() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_714471()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl
index c1692b1..9b0957d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_714471() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_714471() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm
index 7c5e7bf..d11c494 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_714471 "textureLoad_714471"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_714471 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %28 Lod %uint_1
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl
index 793ecf1..b55796d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/714471.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_714471() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_714471();
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl
index 2440721..fa15477 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72bb3c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.dxc.hlsl
index bacc857..17ae830 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_72bb3c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72bb3c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.fxc.hlsl
index bacc857..17ae830 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_72bb3c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72bb3c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl
index e2f46d2..0610a2c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_72bb3c() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_72bb3c() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.spvasm
index a4101d1..2a9a0cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_72bb3c "textureLoad_72bb3c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_72bb3c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.wgsl
index 2871ab8..c225657 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72bb3c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_72bb3c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72bb3c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl
index 91af4ce..163c2e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72c9c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.dxc.hlsl
index cda05c2..d7961da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_72c9c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72c9c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.fxc.hlsl
index cda05c2..d7961da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_72c9c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72c9c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.spvasm
index c559bb0..90cae14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_72c9c3 "textureLoad_72c9c3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_72c9c3 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.wgsl
index 4fcc073..738a175 100644
--- a/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/72c9c3.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_72c9c3() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72c9c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl
index 3cd7565..5436702 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_742f1b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.dxc.hlsl
index fbd0c31..c1d6f4d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_742f1b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_742f1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.fxc.hlsl
index fbd0c31..c1d6f4d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_742f1b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_742f1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.spvasm
index b4fa323..217bf1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_742f1b "textureLoad_742f1b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_742f1b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.wgsl
index f3c78cd..6e2d34b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/742f1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
 
 fn textureLoad_742f1b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_742f1b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl
index cf21a16..2e4e27e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_749704();
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.dxc.hlsl
index 1b720e9..7160837 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_749704() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_749704()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.fxc.hlsl
index 1b720e9..7160837 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_749704() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_749704()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl
index 45b3347..dc304d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_749704() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_749704() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.spvasm
index 2f73dac..a250254 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_749704 "textureLoad_749704"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_749704 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.wgsl
index 4597735..1448cf8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/749704.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read>;
 
 fn textureLoad_749704() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_749704();
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl
index 18f8c17..4bafd35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read_write>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_74a387();
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.dxc.hlsl
index df2336a..4afb000 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_74a387() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_74a387()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.fxc.hlsl
index df2336a..4afb000 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_74a387() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_74a387()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.spvasm
index ae83e43..b50efb4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_74a387 "textureLoad_74a387"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_74a387 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.wgsl
index 6228d1a..d3261b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/74a387.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
 
 fn textureLoad_74a387() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_74a387();
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl
index f504171..afe6e84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_773c46();
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.dxc.hlsl
index 7c876f6..93ecc59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_773c46() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_773c46()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.fxc.hlsl
index 7c876f6..93ecc59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_773c46() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_773c46()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.spvasm
index 571e343..1e3b34d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_773c46 "textureLoad_773c46"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureLoad_773c46 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.wgsl
index 38b821b..12a2e48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/773c46.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read>;
 
 fn textureLoad_773c46() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_773c46();
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl
index e23b541..26b0bdb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_789045();
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl
index 653f43a..9b3b163 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_789045() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_789045()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl
index 653f43a..9b3b163 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_789045() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_789045()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl
index 0918446..f035fe2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_789045() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_789045() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm
index 5a3f90b..4e62ade 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_789045 "textureLoad_789045"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_789045 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl
index 4592838..65b8001 100644
--- a/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/789045.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_789045() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_789045();
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl
index eb80c98..2261ed2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_79e697();
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl
index dd999bd..50e4344 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_79e697() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl
index dd999bd..50e4344 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_79e697() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl
index f10b9d0..b5340fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_79e697() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_79e697() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm
index 41754c8..94a8d95 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_79e697 "textureLoad_79e697"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_79e697 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl
index fb54959..47586ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/79e697.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_79e697() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_79e697();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl
index f9d9f69..5c680d7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7ab4df();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
index a1e980a..fe5cbef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7ab4df() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7ab4df()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
index a1e980a..fe5cbef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7ab4df() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7ab4df()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl
index e744dad..3f56051 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7ab4df() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7ab4df() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm
index 0053d39..0199c16 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7ab4df "textureLoad_7ab4df"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_7ab4df = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl
index 80c7684..f11d679 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7ab4df.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7ab4df() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7ab4df();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl
index 7744aed..63bb9aa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7b63e0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
index 337d0a9..7ae1dbc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_7b63e0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
index 337d0a9..7ae1dbc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_7b63e0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl
index a8a3993..a820c94 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_7b63e0() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_7b63e0() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm
index 74911e8..bec086c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7b63e0 "textureLoad_7b63e0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_7b63e0 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %uint %26 0
          %28 = OpCompositeExtract %uint %26 1
          %29 = OpCompositeConstruct %v3uint %27 %28 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl
index 4fc1ca0..7c1f61c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7b63e0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_7b63e0() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7b63e0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl
index 1632d35..2b5c2ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7bee94();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl
index 5cec90f..e20a03a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7bee94() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl
index 5cec90f..e20a03a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7bee94() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl
index 2063c8b..8672812 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_7bee94() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_7bee94() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm
index 4194bc6..e65d5bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7bee94 "textureLoad_7bee94"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_7bee94 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %28 Sample %int_1
                OpStore %res %23
          %32 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl
index a393932..b2a3fc6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7bee94.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_7bee94() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7bee94();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl
index 58b34e8..de481ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7c90e5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
index d40c8a2..b7534e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7c90e5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7c90e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
index d40c8a2..b7534e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7c90e5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7c90e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl
index 0fd9be1..599f313 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7c90e5() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7c90e5() {
   uvec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm
index 6786b74..ae737ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7c90e5 "textureLoad_7c90e5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_7c90e5 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl
index 04a00f4..df82925 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7c90e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7c90e5() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7c90e5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl
index 099b506..841c8c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dab57();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.dxc.hlsl
index 40e8465..6bb8691 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7dab57() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dab57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.fxc.hlsl
index 40e8465..6bb8691 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7dab57() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dab57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.spvasm
index 24ea6a8..0e54031 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7dab57 "textureLoad_7dab57"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -81,7 +81,7 @@
 %textureLoad_7dab57 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.wgsl
index a7da0aa..0ef12d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dab57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_7dab57() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dab57();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl
index de7abe0..1b60581 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dd3d5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl
index 420a954..04f8a6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7dd3d5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dd3d5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl
index 420a954..04f8a6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7dd3d5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dd3d5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.spvasm
index 5b58812..c35d590 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7dd3d5 "textureLoad_7dd3d5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_7dd3d5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.wgsl
index ac17ff7..b90e540 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7dd3d5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_7dd3d5() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dd3d5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl
index ffa9f4c..b23be89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7e5cbc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl
index 2880345..4c32ef9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7e5cbc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7e5cbc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl
index 2880345..4c32ef9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7e5cbc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7e5cbc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.spvasm
index d3c4cca..a23e40d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7e5cbc "textureLoad_7e5cbc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_7e5cbc = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
          %23 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.wgsl
index d365ae3..f1e9de6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7e5cbc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
 
 fn textureLoad_7e5cbc() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7e5cbc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl
index 12c4a5f..86cde06 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7fd822();
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl
index 9bf22e4..381ffaf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_7fd822() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl
index 9bf22e4..381ffaf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_7fd822() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl
index b98f1bd..751f69f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_7fd822() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_7fd822() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm
index b6c2822..fa0edcf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7fd822 "textureLoad_7fd822"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -75,7 +75,7 @@
 %textureLoad_7fd822 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Lod %int_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl
index a03a746..d60d5ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/7fd822.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_7fd822() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7fd822();
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl
index b40f4ad..0048fce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read_write>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_80dae1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.dxc.hlsl
index 3530001..3ecfff3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_80dae1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_80dae1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.fxc.hlsl
index 3530001..3ecfff3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_80dae1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_80dae1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.spvasm
index 63967f7..d6f716f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_80dae1 "textureLoad_80dae1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_80dae1 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.wgsl
index 7b558ef..ee42336 100644
--- a/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/80dae1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
 
 fn textureLoad_80dae1() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_80dae1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl
index d99a521..3c8f848 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: i32, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_81c381();
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.dxc.hlsl
index a5934d7..d34adfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_81c381() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.fxc.hlsl
index a5934d7..d34adfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_81c381() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.glsl
index 6d596e2..85aadf9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_81c381() {
   vec4 res = texelFetch(arg_0_1, ivec2(1, 0), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_81c381() {
   vec4 res = texelFetch(arg_0_1, ivec2(1, 0), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.spvasm
index c0ef64d..2728fc8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_81c381 "textureLoad_81c381"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_81c381 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %int_1 Lod %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.wgsl
index 019305e..45e4dc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/81c381.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_81c381() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_81c381();
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl
index 6ededf0..e89b93c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83162f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.dxc.hlsl
index 1374986..6c668b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_83162f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83162f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.fxc.hlsl
index 1374986..6c668b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_83162f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83162f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.spvasm
index 0c7091c..9d7fc5e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_83162f "textureLoad_83162f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_83162f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.wgsl
index 7fa3fbb..8d127a0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83162f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read>;
 
 fn textureLoad_83162f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83162f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl
index 05a42b6..a7a1488 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83cea4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.dxc.hlsl
index c32cdfe..d8c6ae0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_83cea4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83cea4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.fxc.hlsl
index c32cdfe..d8c6ae0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_83cea4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83cea4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl
index fa52ee3..5649e86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_83cea4() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_83cea4() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.spvasm
index 37e307d..6e4c382 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_83cea4 "textureLoad_83cea4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_83cea4 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.wgsl
index ba1826c..f018ffe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83cea4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read>;
 
 fn textureLoad_83cea4() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83cea4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl
index 247170f..562dd72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read_write>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83d6e3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.dxc.hlsl
index b10bd06..2db6a21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_83d6e3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83d6e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.fxc.hlsl
index b10bd06..2db6a21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_83d6e3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83d6e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl
index 8985671..198731f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_83d6e3() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_83d6e3() {
   uvec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.spvasm
index 2010bdb..752d077 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_83d6e3 "textureLoad_83d6e3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureLoad_83d6e3 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.wgsl
index 0323eee..9fa784b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/83d6e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
 
 fn textureLoad_83d6e3() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83d6e3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl
index ecffd52..b19670c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_848d85();
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.dxc.hlsl
index c2420a4..8b93d83 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_848d85() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_848d85()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.fxc.hlsl
index c2420a4..8b93d83 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_848d85() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_848d85()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.spvasm
index 8bda79b..ce70e42 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_848d85 "textureLoad_848d85"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_848d85 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.wgsl
index bd7f2b0..26e2e5a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/848d85.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
 
 fn textureLoad_848d85() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_848d85();
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl
index ad6e92d..d795289 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84a438();
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.dxc.hlsl
index 9fed7e0..d5f52e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_84a438() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84a438()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.fxc.hlsl
index 9fed7e0..d5f52e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_84a438() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84a438()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.spvasm
index 4e2ffe6..27ef5cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_84a438 "textureLoad_84a438"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_84a438 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.wgsl
index a0ce115..ddc5f27 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84a438.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
 
 fn textureLoad_84a438() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84a438();
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl
index f509d3e..6449486 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84c728();
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.dxc.hlsl
index 13a45aa..d6c9841 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84c728() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84c728()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.fxc.hlsl
index 13a45aa..d6c9841 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84c728() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84c728()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl
index 7194657..790d1fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_84c728() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_84c728() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.spvasm
index 0f5ff4b..f59e286 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_84c728 "textureLoad_84c728"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_84c728 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.wgsl
index 3bd476e..f2d5939 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84c728.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read>;
 
 fn textureLoad_84c728() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84c728();
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl
index 9844bbd..2869412 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84dee1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl
index 84a2132..3d4c497 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84dee1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl
index 84a2132..3d4c497 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84dee1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl
index cce57b6..f567601 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_84dee1() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_84dee1() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm
index f9f50e2..7fc8568 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_84dee1 "textureLoad_84dee1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_84dee1 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %uint_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl
index 6c909bb5..4f1969f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/84dee1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_84dee1() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84dee1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl
index d5f8b62..1e5fe4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8527b1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl
index ff0ccdd..691077f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8527b1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8527b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl
index ff0ccdd..691077f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8527b1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8527b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl
index a4bd0c5..d76a994 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_8527b1() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_8527b1() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm
index 4259edb..098bfdf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8527b1 "textureLoad_8527b1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_8527b1 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl
index 9dabf1e..d58d055 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8527b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_8527b1() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8527b1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl
index 52907e2..e7b79fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_862833();
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.dxc.hlsl
index c800dcf..315e5c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_862833() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_862833()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.fxc.hlsl
index c800dcf..315e5c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_862833() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_862833()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl
index 49c44a1..321fe0e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_862833() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_862833() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.spvasm
index d6520fe..af0dc8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_862833 "textureLoad_862833"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_862833 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.wgsl
index 0a490bf..97b4ad5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/862833.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_862833() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_862833();
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl
index 4e6da7d..84bd808 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_878e24();
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.dxc.hlsl
index 0c66749..f3b8e0d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_878e24() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_878e24()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.fxc.hlsl
index 0c66749..f3b8e0d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_878e24() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_878e24()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.spvasm
index c3d3b98..95e2528 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_878e24 "textureLoad_878e24"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_878e24 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.wgsl
index a3443df4..cb1b0e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/878e24.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_878e24() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_878e24();
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl
index d1cc05b..eb9c36c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87be85();
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl
index dc24eee..c91dacb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_87be85() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl
index dc24eee..c91dacb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_87be85() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl
index f1e207b..d92c4ef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_87be85() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_87be85() {
   vec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm
index 3acd8ac..39ed2b2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_87be85 "textureLoad_87be85"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_87be85 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl
index 988cb04..e0a4c97 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87be85.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_87be85() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87be85();
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl
index 23affa4..97580fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87f0a6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.dxc.hlsl
index 2e9e7d4..5a41dda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_87f0a6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87f0a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.fxc.hlsl
index 2e9e7d4..5a41dda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_87f0a6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87f0a6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.spvasm
index 1acb4ab..7ee2968 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_87f0a6 "textureLoad_87f0a6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_87f0a6 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.wgsl
index a7e247e..c30961a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/87f0a6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_87f0a6() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87f0a6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl
index c1f9f7b..247d0d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_881349();
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.dxc.hlsl
index fa55874..9b736b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_881349() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_881349()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.fxc.hlsl
index fa55874..9b736b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_881349() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_881349()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.spvasm
index d320d66..02bf130 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_881349 "textureLoad_881349"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_881349 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.wgsl
index bed3fb4..6a3ac75 100644
--- a/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/881349.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_881349() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_881349();
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl
index d4cf77b..aa03513 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_89620b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.dxc.hlsl
index 0a49a8b..a996cda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_89620b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_89620b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.fxc.hlsl
index 0a49a8b..a996cda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_89620b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_89620b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl
index 24825c7..dc6420b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_89620b() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_89620b() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.spvasm
index 2a6d74a..6e44943 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_89620b "textureLoad_89620b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_89620b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.wgsl
index 6775724..1651b8f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/89620b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_89620b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_89620b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl
index fd285a3..2f6b000 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_897cf3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl
index b1b9d4e..3be6761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_897cf3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_897cf3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl
index b1b9d4e..3be6761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_897cf3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_897cf3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl
index a19f388..7871568 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_897cf3() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_897cf3() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm
index e760bc0..0fd9230 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_897cf3 "textureLoad_897cf3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_897cf3 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %27 Lod %uint_1
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl
index 2a0d160..38147b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/897cf3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_897cf3() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_897cf3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl
index 1c44278..b7337ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a291b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.dxc.hlsl
index cb38968..f2c9f41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8a291b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a291b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.fxc.hlsl
index cb38968..f2c9f41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8a291b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a291b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl
index aaa4464..a9ca9fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_8a291b() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_8a291b() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.spvasm
index 5ede15e..221bd69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8a291b "textureLoad_8a291b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_8a291b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.wgsl
index 9c65f5d..60b273e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a291b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_8a291b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a291b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl
index d763cc2..57fd790 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a9988();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.dxc.hlsl
index 46da0d5..ee88376 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8a9988() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a9988()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.fxc.hlsl
index 46da0d5..ee88376 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8a9988() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a9988()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.spvasm
index 481833d..1bccef5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8a9988 "textureLoad_8a9988"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_8a9988 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.wgsl
index 6a0edd9..3ff07bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8a9988.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read>;
 
 fn textureLoad_8a9988() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a9988();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl
index a8f5801..ab50866 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 
 // fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8acf41();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
index f3adf66..3b6fec1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.dxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -121,8 +122,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
index f3adf66..3b6fec1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.fxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -121,8 +122,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
index 2ea6d7d..1165d59 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
@@ -72,6 +72,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -108,10 +112,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -197,6 +197,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -233,10 +237,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
index 3fd31ee..fdc7502 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
@@ -46,10 +46,10 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_ftou "tint_ftou"
                OpName %v "v"
                OpName %gammaCorrection "gammaCorrection"
@@ -129,12 +129,12 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 2
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %ExternalTextureParams 0 Offset 0
                OpMemberDecorate %ExternalTextureParams 1 Offset 4
                OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -182,10 +182,10 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
          %28 = OpTypeFunction %v2uint %v2float
 %float_4_29496704e_09 = OpConstant %float 4.29496704e+09
          %34 = OpConstantComposite %v2float %float_4_29496704e_09 %float_4_29496704e_09
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl
index dd9cae6..53d3640 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_8acf41() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8acf41();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl
index ab67402..6b8875f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8b62fb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.dxc.hlsl
index da12856..774094b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8b62fb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8b62fb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.fxc.hlsl
index da12856..774094b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8b62fb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8b62fb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.spvasm
index 31972f6..8f27baf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8b62fb "textureLoad_8b62fb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_8b62fb = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.wgsl
index 9cadf6a..83267f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8b62fb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
 
 fn textureLoad_8b62fb() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8b62fb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl
index 3785ba2..2b5962a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8bf8c2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl
index c746c67..51c965c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8bf8c2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8bf8c2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl
index c746c67..51c965c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8bf8c2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8bf8c2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl
index e6abaab..04261a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_8bf8c2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_8bf8c2() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.spvasm
index a829ddb..7554b89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8bf8c2 "textureLoad_8bf8c2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_8bf8c2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.wgsl
index 6d1aa24..0809e26 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8bf8c2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
 
 fn textureLoad_8bf8c2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8bf8c2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl
index e5e41db..b986b8a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8c6176();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.dxc.hlsl
index 52ea9e7..c36e218 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8c6176() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8c6176()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.fxc.hlsl
index 52ea9e7..c36e218 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8c6176() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8c6176()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.spvasm
index d8920fa..1130a20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8c6176 "textureLoad_8c6176"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_8c6176 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.wgsl
index 2dd8190..0624603 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8c6176.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
 
 fn textureLoad_8c6176() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8c6176();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl
index f4cf82f..2d0e611 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ccbe3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
index 9678908..5f3f2ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_8ccbe3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
index 9678908..5f3f2ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_8ccbe3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl
index 42a5bde..a8151c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_8ccbe3() {
   float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_8ccbe3() {
   float res = texelFetch(arg_0_1, ivec2(1), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm
index cdd97a2..19780bd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8ccbe3 "textureLoad_8ccbe3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_8ccbe3 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Lod %uint_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl
index 30963bc..6baa93f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ccbe3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_8ccbe3() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ccbe3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl
index 272ced4..cf0be41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8d64c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.dxc.hlsl
index b13942e..3c3480f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8d64c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8d64c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.fxc.hlsl
index b13942e..3c3480f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8d64c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8d64c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.spvasm
index a83276c..101e0e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8d64c3 "textureLoad_8d64c3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_8d64c3 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.wgsl
index d944775..1246374 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8d64c3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
 
 fn textureLoad_8d64c3() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8d64c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl
index b98e1ac..857f751 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8db0ce();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.dxc.hlsl
index 7f8483b..4f77e11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8db0ce() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8db0ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.fxc.hlsl
index 7f8483b..4f77e11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8db0ce() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8db0ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl
index a31b35b..6941d7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_8db0ce() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_8db0ce() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.spvasm
index 29a5905..06d01b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8db0ce "textureLoad_8db0ce"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_8db0ce = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.wgsl
index 58b16ab..64820fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8db0ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_8db0ce() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8db0ce();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl
index 40a70c5..142c70b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e5032();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.dxc.hlsl
index fce47a0..af820da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8e5032() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e5032()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.fxc.hlsl
index fce47a0..af820da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8e5032() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e5032()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.spvasm
index ea55b7f..fedda17 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8e5032 "textureLoad_8e5032"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -81,7 +81,7 @@
 %textureLoad_8e5032 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.wgsl
index 2c7d9c3..f8a8bc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e5032.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_8e5032() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e5032();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl
index 03a74df..b4fc021 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e68c9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.dxc.hlsl
index cab2550..602fe21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_8e68c9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e68c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.fxc.hlsl
index cab2550..602fe21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_8e68c9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e68c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.spvasm
index fb50754..637ee54 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8e68c9 "textureLoad_8e68c9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_8e68c9 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.wgsl
index 7871ca5..4593368 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8e68c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
 
 fn textureLoad_8e68c9() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e68c9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl
index 2013a4e..b0a7e91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8fc29b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.dxc.hlsl
index 3326661..e2514f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8fc29b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8fc29b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.fxc.hlsl
index 3326661..e2514f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8fc29b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8fc29b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.spvasm
index 079721c..109751a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8fc29b "textureLoad_8fc29b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_8fc29b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.wgsl
index 86aa5d7..932f588 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8fc29b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
 
 fn textureLoad_8fc29b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8fc29b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl
index 90e1b28..81bb1ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ff033();
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.dxc.hlsl
index 6a006a6..b96fe00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8ff033() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8ff033()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.fxc.hlsl
index 6a006a6..b96fe00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8ff033() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8ff033()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl
index 5543bf8..4c29959 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_8ff033() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_8ff033() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.spvasm
index ed24d14..70b48ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8ff033 "textureLoad_8ff033"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_8ff033 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.wgsl
index 7cf7b1c..26be884 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8ff033.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read>;
 
 fn textureLoad_8ff033() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ff033();
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl
index f4cd523..576040d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_91ede5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.dxc.hlsl
index 3229507..79c9c21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_91ede5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_91ede5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.fxc.hlsl
index 3229507..79c9c21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_91ede5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_91ede5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.spvasm
index e0b1853..9784880 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_91ede5 "textureLoad_91ede5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_91ede5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.wgsl
index 91aefa2..ad8e4c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/91ede5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
 
 fn textureLoad_91ede5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_91ede5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl
index ad39f80..7f01f14 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9242e7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.dxc.hlsl
index 69e830e..220b0ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9242e7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9242e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.fxc.hlsl
index 69e830e..220b0ee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9242e7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9242e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.spvasm
index 537b18f..d782c02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9242e7 "textureLoad_9242e7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_9242e7 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.wgsl
index 9d5c839..4c3434d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9242e7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
 
 fn textureLoad_9242e7() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9242e7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl
index 172f6a7..28d4448 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read_write>, coords: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92dd61();
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.dxc.hlsl
index 090f89b..cb43357f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_92dd61() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92dd61()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.fxc.hlsl
index 090f89b..cb43357f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_92dd61() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92dd61()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.spvasm
index e6ed61b..841af0d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_92dd61 "textureLoad_92dd61"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_92dd61 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.wgsl
index c31b6c9..9f669e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92dd61.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read_write>;
 
 fn textureLoad_92dd61() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92dd61();
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl
index 439be5a..08dcd6e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92eb1f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
index 2a5b4fc..8be3bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_92eb1f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92eb1f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
index 2a5b4fc..8be3bb7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_92eb1f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92eb1f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl
index 81bb484..d1fb2ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_92eb1f() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_92eb1f() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm
index 968c647..f74ccc2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_92eb1f "textureLoad_92eb1f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureLoad_92eb1f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %27 Lod %int_1
                OpStore %res %23
          %32 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl
index ef21a800..482dea9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/92eb1f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_92eb1f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92eb1f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl
index 1bf2963..157fc85 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_936952();
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.dxc.hlsl
index 32c41a9..aecf97b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_936952() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_936952()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.fxc.hlsl
index 32c41a9..aecf97b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_936952() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_936952()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl
index d93d1f4..25ad9f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_936952() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_936952() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.spvasm
index c86e19d..8ad3c63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_936952 "textureLoad_936952"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_936952 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.wgsl
index a6e9f9a..8a980a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/936952.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_936952() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_936952();
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl
index d07fcca..af5f48a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_93f23e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.dxc.hlsl
index ca5a18d..7f363fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_93f23e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_93f23e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.fxc.hlsl
index ca5a18d..7f363fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_93f23e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_93f23e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl
index 67f1eec..64dc12a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_93f23e() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_93f23e() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.spvasm
index b3893e1..7e78632 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_93f23e "textureLoad_93f23e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_93f23e = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.wgsl
index cb61415..a64734e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/93f23e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
 
 fn textureLoad_93f23e() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_93f23e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl
index 1e26426..b7e1de3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read>, coords: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_947107();
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.dxc.hlsl
index c3a050b..f3c51a2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_947107() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_947107()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.fxc.hlsl
index c3a050b..f3c51a2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_947107() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_947107()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.spvasm
index 62280a8..eaaa1b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_947107 "textureLoad_947107"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -75,7 +75,7 @@
 %textureLoad_947107 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.wgsl
index 88bc3ea..911b6b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/947107.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read>;
 
 fn textureLoad_947107() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_947107();
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl
index 7df40ac..5cb6e7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_96efd5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl
index 0923114..f4ff3e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_96efd5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl
index 0923114..f4ff3e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_96efd5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl
index f9b71a8..619a726 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_96efd5() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_96efd5() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm
index 5930d76..030b33c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_96efd5 "textureLoad_96efd5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_96efd5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl
index 8db1017..bfe6c15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/96efd5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_96efd5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_96efd5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl
index a0ac1c8..98bc4a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_970308();
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.dxc.hlsl
index 5cb701e..e83abb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_970308() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_970308()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.fxc.hlsl
index 5cb701e..e83abb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_970308() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_970308()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl
index 4508aec..ba18413 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_970308() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_970308() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.spvasm
index a9413f1..1d63927 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_970308 "textureLoad_970308"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_970308 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.wgsl
index f17ed83..bde8e6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/970308.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_970308() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_970308();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl
index a2629637..519b536 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9885b0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl
index fdd19fb..6375faa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9885b0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl
index fdd19fb..6375faa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9885b0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl
index 56595e5..6694a9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9885b0() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9885b0() {
   ivec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm
index 420de75..3e398d9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9885b0 "textureLoad_9885b0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_9885b0 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl
index 0b214c7..5124330 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9885b0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9885b0() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9885b0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl
index 2321666..f77570a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_99d8fa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.dxc.hlsl
index 2cc5a06..9ced869 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_99d8fa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_99d8fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.fxc.hlsl
index 2cc5a06..9ced869 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_99d8fa() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_99d8fa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.spvasm
index 536c9c5..9871e19 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_99d8fa "textureLoad_99d8fa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_99d8fa = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.wgsl
index 865b71c..1649f35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/99d8fa.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read_write>;
 
 fn textureLoad_99d8fa() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_99d8fa();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl
index 90afc4d..f162115 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a7c90();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.dxc.hlsl
index 6e5f9c5..50d10bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9a7c90() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a7c90()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.fxc.hlsl
index 6e5f9c5..50d10bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9a7c90() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a7c90()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl
index d465422..b83a203 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_9a7c90() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_9a7c90() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.spvasm
index 40bb645..c047c4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9a7c90 "textureLoad_9a7c90"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_9a7c90 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.wgsl
index bc87624..8838ed7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a7c90.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read>;
 
 fn textureLoad_9a7c90() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a7c90();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl
index 622d5d9..095858d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a8c1e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl
index af0207b..97e5a91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9a8c1e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a8c1e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl
index af0207b..97e5a91 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9a8c1e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a8c1e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl
index 5839b33..cdafd54 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9a8c1e() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9a8c1e() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.spvasm
index f835ab4..5da57a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9a8c1e "textureLoad_9a8c1e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -80,7 +80,7 @@
 %textureLoad_9a8c1e = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.wgsl
index 45e836d..4d6c6b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9a8c1e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_9a8c1e() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a8c1e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl
index 335f980..c9f33d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9aa733();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl
index 8443f43..4a0083c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9aa733() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl
index 8443f43..4a0083c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9aa733() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl
index 2edd20e..d9a558f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_9aa733() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_9aa733() {
   ivec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm
index e08e741..574111a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9aa733 "textureLoad_9aa733"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_9aa733 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %28 Lod %int_1
                OpStore %res %23
          %32 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl
index aa62bcd..a9c89b2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9aa733.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_9aa733() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9aa733();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl
index 7ff4af2..1c49296 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b2667();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl
index 44da019..eaeacb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_9b2667() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl
index 44da019..eaeacb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_9b2667() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl
index 60473be..76e5b82 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_9b2667() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_9b2667() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm
index fae6229..18ada7e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9b2667 "textureLoad_9b2667"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_9b2667 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %int %26 0
          %28 = OpCompositeExtract %int %26 1
          %29 = OpCompositeConstruct %v3int %27 %28 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl
index 5065d21..b471768 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b2667.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_9b2667() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b2667();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl
index 1c85f5b..ae3da00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b5343();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.dxc.hlsl
index 13039d0..a7506b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9b5343() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9b5343()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.fxc.hlsl
index 13039d0..a7506b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9b5343() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9b5343()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl
index 03679e1..694c4b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_9b5343() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_9b5343() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.spvasm
index 0d379a6..b7d9aab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9b5343 "textureLoad_9b5343"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -80,7 +80,7 @@
 %textureLoad_9b5343 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.wgsl
index 25673b2..968ed73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9b5343.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_9b5343() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b5343();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl
index 3039991..7ccf556 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2376();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.dxc.hlsl
index 52aa79d..2fa9655 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2376() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2376()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.fxc.hlsl
index 52aa79d..2fa9655 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2376() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2376()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl
index 3172dd0..55b9019 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9c2376() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9c2376() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.spvasm
index 64cb6e5..004170c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9c2376 "textureLoad_9c2376"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_9c2376 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.wgsl
index 8f91869..43daf1e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2376.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_9c2376() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2376();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl
index 4b6d954..761509a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2a14();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.dxc.hlsl
index 26ee90d..727a3dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2a14() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2a14()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.fxc.hlsl
index 26ee90d..727a3dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2a14() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2a14()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.spvasm
index 58009a2..6b1f65c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9c2a14 "textureLoad_9c2a14"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -76,7 +76,7 @@
 %textureLoad_9c2a14 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.wgsl
index 2afeeac..9886c96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9c2a14.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read>;
 
 fn textureLoad_9c2a14() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2a14();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl
index 19c45ed..81a02ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9cf7df();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.dxc.hlsl
index f19d842..b66a6ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9cf7df() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9cf7df()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.fxc.hlsl
index f19d842..b66a6ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9cf7df() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9cf7df()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.spvasm
index 1c36be2..a50b3f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9cf7df "textureLoad_9cf7df"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -81,7 +81,7 @@
 %textureLoad_9cf7df = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.wgsl
index 42d86de..d3e22a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9cf7df.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_9cf7df() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9cf7df();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl
index b8d874f..eeeac8f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9d70e9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
index 6d2ef25..ceb237e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9d70e9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
index 6d2ef25..ceb237e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9d70e9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl
index 1d787cb..e7edbc0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9d70e9() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9d70e9() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm
index fe9fc07..a8122a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9d70e9 "textureLoad_9d70e9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_9d70e9 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl
index 835eb90..224b75f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9d70e9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9d70e9() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9d70e9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl
index 8c1e3fa..883f20d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9de6f5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.dxc.hlsl
index 6bc6df2..a65c9a5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9de6f5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9de6f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.fxc.hlsl
index 6bc6df2..a65c9a5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9de6f5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9de6f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl
index 90013c3..13bccba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9de6f5() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9de6f5() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.spvasm
index b18d629..4eda25a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9de6f5 "textureLoad_9de6f5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_9de6f5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.wgsl
index 33dacc6..9b2adc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9de6f5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_9de6f5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9de6f5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl
index f42034e..116dd31 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9ed19e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
index fd82eb1..f368bf1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_9ed19e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
index fd82eb1..f368bf1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_9ed19e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl
index 03e4865..44dbb53 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_9ed19e() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_9ed19e() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
index fc3f326..864f019 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9ed19e "textureLoad_9ed19e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_9ed19e = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Lod %uint_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl
index 9c3daf5..978bdb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9ed19e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_9ed19e() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9ed19e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl
index 6bd3724..c358884 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fa9fd();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl
index fc6da8b..feff849 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fa9fd() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fa9fd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl
index fc6da8b..feff849 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fa9fd() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fa9fd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.spvasm
index c307d9d..57a519e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9fa9fd "textureLoad_9fa9fd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_9fa9fd = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.wgsl
index b029233..e95d34e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fa9fd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
 
 fn textureLoad_9fa9fd() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fa9fd();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl
index 8a96102..aa271f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fbfd9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
index 6e92730..1cbeaab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9fbfd9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
index 6e92730..1cbeaab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9fbfd9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl
index 53ebd3c..e9a6825 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9fbfd9() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9fbfd9() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm
index dd65f5c..fc3f4db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9fbfd9 "textureLoad_9fbfd9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_9fbfd9 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl
index 3e58d4b..e8c95e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fbfd9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9fbfd9() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fbfd9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl
index 0e8e9c9..52338fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fd7be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.dxc.hlsl
index de6a9f2..0438e86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fd7be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fd7be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.fxc.hlsl
index de6a9f2..0438e86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fd7be() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fd7be()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.spvasm
index ec84550..61db0f8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9fd7be "textureLoad_9fd7be"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_9fd7be = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.wgsl
index fa7eb7b..b1bc14b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/9fd7be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_9fd7be() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fd7be();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl
index 05599c0..b00ff13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a03af1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.dxc.hlsl
index bcc931e..ec1b69a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a03af1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a03af1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.fxc.hlsl
index bcc931e..ec1b69a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a03af1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a03af1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl
index 6e0f070..7533658 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_a03af1() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_a03af1() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.spvasm
index 7116142..3f67537 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a03af1 "textureLoad_a03af1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_a03af1 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.wgsl
index 8d8494e..955b64b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a03af1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_a03af1() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a03af1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl
index 71dbf5a..f9dc428 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a24be1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl
index cf1b856..9fd8bb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a24be1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a24be1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl
index cf1b856..9fd8bb2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a24be1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a24be1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl
index 7af1c25..2591c2e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_a24be1() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_a24be1() {
   uvec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm
index b968611..eb27c99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a24be1 "textureLoad_a24be1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_a24be1 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl
index 6e2d4bb..38fd532 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a24be1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_a24be1() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a24be1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl
index 8bfb5b0..3db319e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a2b3f4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl
index 8e97271..5ee2e46 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a2b3f4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a2b3f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl
index 8e97271..5ee2e46 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a2b3f4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a2b3f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.spvasm
index 1a342a8..fc81d1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a2b3f4 "textureLoad_a2b3f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_a2b3f4 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.wgsl
index 71ca690..7c4a29e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a2b3f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_a2b3f4() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a2b3f4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl
index bdb4022..90f1222 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3733f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.dxc.hlsl
index 8aeac2c..fc813b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3733f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3733f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.fxc.hlsl
index 8aeac2c..fc813b0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3733f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3733f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.spvasm
index 4e51c11..91d5049 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a3733f "textureLoad_a3733f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_a3733f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.wgsl
index 3982d47..bf1c6c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3733f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
 
 fn textureLoad_a3733f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3733f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl
index 47a3b72..b86c8b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3f122();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.dxc.hlsl
index b7c081e..9aa63a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3f122() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3f122()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.fxc.hlsl
index b7c081e..9aa63a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3f122() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3f122()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.spvasm
index 0f9ed60..2d613f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a3f122 "textureLoad_a3f122"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_a3f122 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.wgsl
index bfe7775..3641eda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a3f122.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_a3f122() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3f122();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl
index 03d3342..94009f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read_write>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a548a8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.dxc.hlsl
index 3f80a9e..a196dab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a548a8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a548a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.fxc.hlsl
index 3f80a9e..a196dab 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a548a8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a548a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.spvasm
index e584e4a..93d27a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a548a8 "textureLoad_a548a8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureLoad_a548a8 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.wgsl
index fb6cd9a..2e85c70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a548a8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
 
 fn textureLoad_a548a8() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a548a8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl
index 78d116d..8f56a07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a54e11();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.dxc.hlsl
index 0499d8f..1e92500 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a54e11() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a54e11()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.fxc.hlsl
index 0499d8f..1e92500 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a54e11() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a54e11()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.spvasm
index 17def78..88359fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a54e11 "textureLoad_a54e11"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_a54e11 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.wgsl
index 7a69cc7..05d9a02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a54e11.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_a54e11() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a54e11();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl
index 30c2c67..937ad84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a583c9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl
index 1c0fec7..0f00dc4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a583c9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl
index 1c0fec7..0f00dc4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a583c9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl
index e301b03..1e8683e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_a583c9() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_a583c9() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm
index 3b28411..0420fee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a583c9 "textureLoad_a583c9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_a583c9 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Sample %int_1
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl
index 55bf23e..09d68f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a583c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_a583c9() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a583c9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl
index 77f3215..c7a292c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read_write>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5c4e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl
index e970292..0fd67b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a5c4e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5c4e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl
index e970292..0fd67b3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a5c4e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5c4e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.spvasm
index 5eda8aa..60ccda5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a5c4e2 "textureLoad_a5c4e2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_a5c4e2 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.wgsl
index b614d24..4c18ddc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5c4e2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
 
 fn textureLoad_a5c4e2() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5c4e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl
index b959cd9..541842b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5e0a5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl
index 6a8c5b7..d211e97 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a5e0a5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5e0a5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl
index 6a8c5b7..d211e97 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a5e0a5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5e0a5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl
index a126e5a..4d869bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_a5e0a5() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_a5e0a5() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.spvasm
index 816ebeb..90842e2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a5e0a5 "textureLoad_a5e0a5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_a5e0a5 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.wgsl
index 7fc2d63..889ad15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a5e0a5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
 
 fn textureLoad_a5e0a5() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5e0a5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl
index 1450d83..59b6d0c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a64b1d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.dxc.hlsl
index eb65518..c118a92 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a64b1d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a64b1d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.fxc.hlsl
index eb65518..c118a92 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a64b1d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a64b1d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.spvasm
index 0e9af78..05861c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a64b1d "textureLoad_a64b1d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -72,7 +72,7 @@
 %textureLoad_a64b1d = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.wgsl
index 9e41ad5..a6aaf0c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a64b1d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
 
 fn textureLoad_a64b1d() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a64b1d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl
index 86f2e5d..ac8b6cb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6a85a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.dxc.hlsl
index e24721c..d5a47b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a6a85a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6a85a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.fxc.hlsl
index e24721c..d5a47b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a6a85a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6a85a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl
index 1dc45c5..f6eec0d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a6a85a() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a6a85a() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.spvasm
index 17340ca..dc5e995 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a6a85a "textureLoad_a6a85a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_a6a85a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.wgsl
index 5c5a403..0a486af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6a85a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read>;
 
 fn textureLoad_a6a85a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6a85a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl
index 1530c97..6006bf8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6b61d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.dxc.hlsl
index 130aaea..574d5d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a6b61d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6b61d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.fxc.hlsl
index 130aaea..574d5d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a6b61d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6b61d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl
index 34e0833..66e5811 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_a6b61d() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_a6b61d() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.spvasm
index 428137f..b95e65b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a6b61d "textureLoad_a6b61d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_a6b61d = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.wgsl
index f69bfbe..d737103 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a6b61d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_a6b61d() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6b61d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl
index 57df7a9..f37d4b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7444c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.dxc.hlsl
index 24a30e7..a968db4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a7444c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7444c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.fxc.hlsl
index 24a30e7..a968db4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a7444c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7444c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl
index d1f8077..64e8311 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_a7444c() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_a7444c() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.spvasm
index 7cad40d..f3cc820 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7444c "textureLoad_a7444c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_a7444c = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.wgsl
index 117772c..6d03bfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7444c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_a7444c() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7444c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl
index bfa3def..d0f2a74 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7a3c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl
index 27a6c05..ad2ecd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a7a3c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7a3c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl
index 27a6c05..ad2ecd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a7a3c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7a3c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl
index 18c5be2..3cecf63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_a7a3c3() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_a7a3c3() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.spvasm
index 96af7f2..9595372 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7a3c3 "textureLoad_a7a3c3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_a7a3c3 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.wgsl
index 329ade7..33af0bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7a3c3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read>;
 
 fn textureLoad_a7a3c3() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7a3c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl
index 7472ca1..6ee0f33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7bcb4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl
index be7b958..bb9a17d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a7bcb4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7bcb4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl
index be7b958..bb9a17d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a7bcb4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7bcb4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.spvasm
index 6318e33..1a09938 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7bcb4 "textureLoad_a7bcb4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_a7bcb4 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.wgsl
index bd6c9d7..c9530eb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7bcb4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
 
 fn textureLoad_a7bcb4() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7bcb4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl
index 1ba6573..48a2d4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7c171();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.dxc.hlsl
index a52712e..643c204 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a7c171() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7c171()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.fxc.hlsl
index a52712e..643c204 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a7c171() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7c171()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.spvasm
index e76eca0..720f490 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7c171 "textureLoad_a7c171"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_a7c171 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.wgsl
index 9563809..d83c87f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a7c171.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
 
 fn textureLoad_a7c171() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7c171();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl
index 42ddc93..0a2cdb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a8549b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.dxc.hlsl
index 24a885c..c71566f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a8549b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a8549b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.fxc.hlsl
index 24a885c..c71566f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a8549b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a8549b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl
index c07b0fd..79cfb15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a8549b() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a8549b() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.spvasm
index 4ca9200..716675e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a8549b "textureLoad_a8549b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_a8549b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.wgsl
index eaf6f69..ee76fb0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a8549b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read>;
 
 fn textureLoad_a8549b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a8549b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl
index caa6d8c..94a4476 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a92b18();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.dxc.hlsl
index 9a5773e..c9d92ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a92b18() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a92b18()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.fxc.hlsl
index 9a5773e..c9d92ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a92b18() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a92b18()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.spvasm
index f879ed5..e89c8d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a92b18 "textureLoad_a92b18"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_a92b18 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.wgsl
index 35431c0..6780740 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a92b18.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_a92b18() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a92b18();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl
index c926216..4709ad7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a9a9f5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
index 9459307..e68a4ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a9a9f5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a9a9f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
index 9459307..e68a4ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a9a9f5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a9a9f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl
index 2b36529..b64035e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_a9a9f5() {
   uvec4 res = texelFetch(arg_0_1, ivec3(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_a9a9f5() {
   uvec4 res = texelFetch(arg_0_1, ivec3(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm
index 2e01d05..cc7a16b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a9a9f5 "textureLoad_a9a9f5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -78,7 +78,7 @@
 %textureLoad_a9a9f5 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %28 Lod %int_1
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl
index 8129694..3e11587 100644
--- a/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/a9a9f5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_a9a9f5() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a9a9f5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl
index d2186a7..2425e2b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa2579();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.dxc.hlsl
index 2f43059..2d99234 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_aa2579() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa2579()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.fxc.hlsl
index 2f43059..2d99234 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_aa2579() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa2579()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.spvasm
index ccc1a3c..f4d7580 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aa2579 "textureLoad_aa2579"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_aa2579 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.wgsl
index 5576b8b..124fda3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa2579.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_aa2579() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa2579();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl
index 6eef419..c8728ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa6130();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.dxc.hlsl
index f4a0785..030e16b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_aa6130() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa6130()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.fxc.hlsl
index f4a0785..030e16b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_aa6130() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa6130()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.spvasm
index cdef294..cadb741 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aa6130 "textureLoad_aa6130"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_aa6130 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.wgsl
index 5f625c3..2a95fde 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa6130.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
 
 fn textureLoad_aa6130() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa6130();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl
index 9b26c65..fa764e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa8a0d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl
index a166ef2..b7ae9d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aa8a0d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa8a0d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl
index a166ef2..b7ae9d8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aa8a0d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa8a0d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl
index f85cd68..2057955 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.spvasm
index 51ef188..6c6b9cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aa8a0d "textureLoad_aa8a0d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_aa8a0d = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.wgsl
index e5c9ed5..d9d0446 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aa8a0d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read>;
 
 fn textureLoad_aa8a0d() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa8a0d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl
index 001cf95..48f3d02 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae7f6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.dxc.hlsl
index 46d910c..402920b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_aae7f6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae7f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.fxc.hlsl
index 46d910c..402920b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_aae7f6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae7f6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl
index 3d3b814..4298f9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_aae7f6() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_aae7f6() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.spvasm
index ccb64d9..91fd63e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aae7f6 "textureLoad_aae7f6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_aae7f6 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.wgsl
index c866ce3..82159fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae7f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_aae7f6() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae7f6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl
index 7db4a22..dd3b958 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae9c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.dxc.hlsl
index 15a42fd..8cef169 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_aae9c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae9c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.fxc.hlsl
index 15a42fd..8cef169 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_aae9c3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae9c3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.spvasm
index 88f325e..611e21d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aae9c3 "textureLoad_aae9c3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_aae9c3 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.wgsl
index f07274e..7210191 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aae9c3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_aae9c3() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae9c3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl
index c25b6b0..e535309 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ac64f7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.dxc.hlsl
index 96a5314..4e61bd9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ac64f7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ac64f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.fxc.hlsl
index 96a5314..4e61bd9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ac64f7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ac64f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl
index 85960c6..6f6396f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_ac64f7() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_ac64f7() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.spvasm
index 47d9c63..c0e7b0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ac64f7 "textureLoad_ac64f7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_ac64f7 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.wgsl
index 6b3c373..2403daa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ac64f7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_ac64f7() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ac64f7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl
index 5c6f82e..5c508d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_acf22f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.dxc.hlsl
index 59b0ae5..06b07b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_acf22f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_acf22f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.fxc.hlsl
index 59b0ae5..06b07b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_acf22f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_acf22f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.spvasm
index 4de1a83..8cc36a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_acf22f "textureLoad_acf22f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_acf22f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.wgsl
index 9e1c455..e3a3e52 100644
--- a/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/acf22f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
 
 fn textureLoad_acf22f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_acf22f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl
index 8dbeff0..85b055b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read_write>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ad551e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.dxc.hlsl
index 82726b3..1e9fa00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_ad551e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ad551e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.fxc.hlsl
index 82726b3..1e9fa00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_ad551e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ad551e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl
index 5c8dff1..df41f44 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_ad551e() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_ad551e() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.spvasm
index d9fb45b..c136a79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ad551e "textureLoad_ad551e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -75,7 +75,7 @@
 %textureLoad_ad551e = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.wgsl
index 4953a72..6a7aa27 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ad551e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
 
 fn textureLoad_ad551e() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ad551e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl
index 4fffef1..0954951 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aeae73();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.dxc.hlsl
index 1281f8c..78107ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aeae73() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aeae73()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.fxc.hlsl
index 1281f8c..78107ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aeae73() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aeae73()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl
index aa79198..955a3cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_aeae73() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_aeae73() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.spvasm
index 6ab1a9c..5d8c442 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aeae73 "textureLoad_aeae73"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -80,7 +80,7 @@
 %textureLoad_aeae73 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.wgsl
index f29bea3..a6d8212 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aeae73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_aeae73() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aeae73();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl
index 540640f..e9080fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aebc09();
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.dxc.hlsl
index 7c578fc..f27a186 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aebc09() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aebc09()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.fxc.hlsl
index 7c578fc..f27a186 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aebc09() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aebc09()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl
index e59293f..e686fd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aebc09() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aebc09() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.spvasm
index 40f728a..baffe11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aebc09 "textureLoad_aebc09"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -76,7 +76,7 @@
 %textureLoad_aebc09 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.wgsl
index 25856f0..c256e65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/aebc09.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read>;
 
 fn textureLoad_aebc09() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aebc09();
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl
index 36d1bb4..0331c3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_af0507();
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.dxc.hlsl
index 70b35ba..53bd090 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_af0507() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_af0507()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.fxc.hlsl
index 70b35ba..53bd090 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_af0507() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_af0507()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.spvasm
index dc9a615..168a477 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_af0507 "textureLoad_af0507"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_af0507 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.wgsl
index 0823c1b..65e6256 100644
--- a/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/af0507.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_af0507() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_af0507();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl
index 5dd6827..1a316e4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1bf79();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.dxc.hlsl
index 9db21c4..cdc5eff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b1bf79() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1bf79()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.fxc.hlsl
index 9db21c4..cdc5eff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b1bf79() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1bf79()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl
index b9b5d82..f9c11b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_b1bf79() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_b1bf79() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.spvasm
index 4179d50..eb415f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b1bf79 "textureLoad_b1bf79"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_b1bf79 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.wgsl
index 3d2b4cf..9eed862 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1bf79.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read>;
 
 fn textureLoad_b1bf79() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1bf79();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl
index 1a60cd5..7c5a84a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1ca35();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.dxc.hlsl
index 5fda1ab..798fcdb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b1ca35() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1ca35()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.fxc.hlsl
index 5fda1ab..798fcdb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b1ca35() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1ca35()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.spvasm
index 1e6d4c2..2a4bb64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b1ca35 "textureLoad_b1ca35"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_b1ca35 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.wgsl
index 4c12f00..abc3ee8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b1ca35.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_b1ca35() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1ca35();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl
index 8ecb3c0..4a44059 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b24d27();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.dxc.hlsl
index 9aa5fd8..b3476f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b24d27() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b24d27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.fxc.hlsl
index 9aa5fd8..b3476f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b24d27() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b24d27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl
index 1501284..82eebe7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_b24d27() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_b24d27() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.spvasm
index 4ed59cb..cf1e50b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b24d27 "textureLoad_b24d27"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_b24d27 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.wgsl
index 1485bbe..e9147ed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b24d27.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read>;
 
 fn textureLoad_b24d27() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b24d27();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl
index ed40462..58225b8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b25644();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.dxc.hlsl
index e2022ab..9e06bc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b25644() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b25644()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.fxc.hlsl
index e2022ab..9e06bc3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b25644() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b25644()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl
index 51722da..261228c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_b25644() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_b25644() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.spvasm
index 56378ab..cadab72 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b25644 "textureLoad_b25644"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_b25644 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.wgsl
index 40a1b22..4ec9fc7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b25644.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_b25644() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b25644();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl
index 3bf3b1c..93b5cd9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b27c33();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.dxc.hlsl
index 43bc20e..895ebef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b27c33() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b27c33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.fxc.hlsl
index 43bc20e..895ebef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b27c33() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b27c33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl
index fa0fec4..525025c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_b27c33() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_b27c33() {
   ivec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.spvasm
index aea1389..af61877 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b27c33 "textureLoad_b27c33"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_b27c33 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.wgsl
index 54d6209..482518e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b27c33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
 
 fn textureLoad_b27c33() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b27c33();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl
index 626a6fa..d5b6308 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b29f71();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl
index d455262..6d6bba5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b29f71() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl
index d455262..6d6bba5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b29f71() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl
index 58931e2..ffb78e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_b29f71() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_b29f71() {
   ivec4 res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm
index 2de3aad..350f7a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b29f71 "textureLoad_b29f71"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_b29f71 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl
index 29feed5..7e2899e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b29f71.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_b29f71() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b29f71();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl
index f05cc77..340df9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b4d6c4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl
index b8dcfd4..7640a86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b4d6c4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b4d6c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl
index b8dcfd4..7640a86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b4d6c4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b4d6c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.spvasm
index 5ce72f5..acc489f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b4d6c4 "textureLoad_b4d6c4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_b4d6c4 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.wgsl
index 170edf0..2fed309 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b4d6c4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
 
 fn textureLoad_b4d6c4() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b4d6c4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl
index 0c05520..d28ad33 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b58c6d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.dxc.hlsl
index aa83401..bcf85e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b58c6d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b58c6d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.fxc.hlsl
index aa83401..bcf85e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b58c6d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b58c6d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl
index f0cfa4c..c1aa6ef 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b58c6d() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b58c6d() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.spvasm
index a1bd180..f6d9a86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b58c6d "textureLoad_b58c6d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_b58c6d = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.wgsl
index dfcce2b..231540c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b58c6d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_b58c6d() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b58c6d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl
index ee9586e..a7a63a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read_write>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60a86();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.dxc.hlsl
index b0f5d2d..4829429 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b60a86() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60a86()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.fxc.hlsl
index b0f5d2d..4829429 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b60a86() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60a86()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.spvasm
index fd1ecc6..c942d9c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b60a86 "textureLoad_b60a86"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureLoad_b60a86 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.wgsl
index 8c20808..6e2287d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60a86.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
 
 fn textureLoad_b60a86() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60a86();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl
index 1b2d355..4fd3df8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60db7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.dxc.hlsl
index 95df42a..5de9989 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b60db7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60db7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.fxc.hlsl
index 95df42a..5de9989 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b60db7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60db7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.spvasm
index 0b83e9e..0af4f68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b60db7 "textureLoad_b60db7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_b60db7 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.wgsl
index 929377e..c9515e6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b60db7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_b60db7() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60db7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl
index 7ee86fd..a2de457 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6ba5d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
index e367d87..a2435bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_b6ba5d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
index e367d87..a2435bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_b6ba5d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl
index 0fea7e8..0643a0c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_b6ba5d() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_b6ba5d() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), uint(1))), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm
index 04c9a43..bd8a597 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b6ba5d "textureLoad_b6ba5d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_b6ba5d = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %uint %26 0
          %28 = OpCompositeExtract %uint %26 1
          %29 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl
index e86b490..05e56ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6ba5d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_b6ba5d() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6ba5d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl
index 3bc3a8c..1a724af 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6c458();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.dxc.hlsl
index b9f6623..ed6ab13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b6c458() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b6c458()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.fxc.hlsl
index b9f6623..ed6ab13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b6c458() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b6c458()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl
index 85821fd..643f51c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_b6c458() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_b6c458() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.spvasm
index e629c66..1fe4fd3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b6c458 "textureLoad_b6c458"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_b6c458 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.wgsl
index 9c1dd92..cc2cd35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b6c458.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read>;
 
 fn textureLoad_b6c458() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6c458();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl
index ed98532..7007126 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b73f6b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
index 218b03f..da8665e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b73f6b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b73f6b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
index 218b03f..da8665e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b73f6b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b73f6b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl
index fb154ea..3201a2e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_b73f6b() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_b73f6b() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm
index ceba91a..8cabfaa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b73f6b "textureLoad_b73f6b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureLoad_b73f6b = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %27 Lod %int_1
                OpStore %res %23
          %32 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl
index cb189ad..d534a51 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b73f6b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_b73f6b() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b73f6b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl
index 90613ac..c1f3f43 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75c8f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.dxc.hlsl
index 4da01cf..abb1f6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b75c8f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75c8f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.fxc.hlsl
index 4da01cf..abb1f6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b75c8f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75c8f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl
index e426e1f..f15ff69 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_b75c8f() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_b75c8f() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.spvasm
index 04e4a8d..4f5a072 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b75c8f "textureLoad_b75c8f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_b75c8f = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.wgsl
index 8425fcd..7e2b93a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75c8f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
 
 fn textureLoad_b75c8f() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75c8f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl
index 4cefdb7..45d4537 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75d4a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
index 8b38058..6677413 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b75d4a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
index 8b38058..6677413 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b75d4a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl
index 15160c8..e2fbb1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_b75d4a() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_b75d4a() {
   vec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm
index e07b1c9..e8cf2c2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b75d4a "textureLoad_b75d4a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_b75d4a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Sample %uint_1
                OpStore %res %19
          %29 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl
index b38328d..336bab5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b75d4a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_b75d4a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75d4a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl
index 19497be..943727d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b7f74f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.dxc.hlsl
index ac9504f..a4d29c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b7f74f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b7f74f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.fxc.hlsl
index ac9504f..a4d29c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b7f74f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b7f74f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl
index 5655b81..33e3ec0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_b7f74f() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_b7f74f() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.spvasm
index 39a13ec..d64fd5c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b7f74f "textureLoad_b7f74f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_b7f74f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
          %23 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.wgsl
index e23df20..5036acd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b7f74f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read>;
 
 fn textureLoad_b7f74f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b7f74f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl
index 11b5c57..04eb702 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b80e7e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.dxc.hlsl
index 8c7a0ea..a402a70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b80e7e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b80e7e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.fxc.hlsl
index 8c7a0ea..a402a70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b80e7e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b80e7e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl
index 6114eb2..5778416 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b80e7e() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b80e7e() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.spvasm
index 0169d62..53073b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b80e7e "textureLoad_b80e7e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_b80e7e = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.wgsl
index d581ee3..abf63fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b80e7e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_b80e7e() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b80e7e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl
index 05b50a5..90f95d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b94d15();
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.dxc.hlsl
index b884952..8c16c20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b94d15() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b94d15()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.fxc.hlsl
index b884952..8c16c20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b94d15() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b94d15()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl
index 9febb7e..c31790a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_b94d15() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_b94d15() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.spvasm
index 3bb446e..bc93174 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b94d15 "textureLoad_b94d15"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_b94d15 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.wgsl
index be2ec7d..755cf37 100644
--- a/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/b94d15.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_b94d15() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b94d15();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl
index f0f0ad8..4c6d028 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba023a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.dxc.hlsl
index d913c2e..a124c4b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba023a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba023a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.fxc.hlsl
index d913c2e..a124c4b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba023a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba023a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl
index 7b933a6..c7aa150 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ba023a() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ba023a() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.spvasm
index be5daec..e554515 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ba023a "textureLoad_ba023a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_ba023a = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.wgsl
index fa958c4..6c5cc1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba023a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_ba023a() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba023a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl
index ab48d7b..a3f5bcc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba74b2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.dxc.hlsl
index 4e64f4c..bf7a9ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba74b2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba74b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.fxc.hlsl
index 4e64f4c..bf7a9ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba74b2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba74b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.spvasm
index f425e13..7f95291 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ba74b2 "textureLoad_ba74b2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_ba74b2 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.wgsl
index e970862..0a6bc8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ba74b2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_ba74b2() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba74b2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl
index f121534..74ad2a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read_write>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_babdf3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.dxc.hlsl
index 065c464..f8a68c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_babdf3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_babdf3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.fxc.hlsl
index 065c464..f8a68c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_babdf3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_babdf3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.spvasm
index d0ee764..4f9facd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_babdf3 "textureLoad_babdf3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -75,7 +75,7 @@
 %textureLoad_babdf3 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.wgsl
index 5e85c97..7cc7ebb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/babdf3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
 
 fn textureLoad_babdf3() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_babdf3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl
index 2a6e6da..0565112 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read_write>, coords: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bba04a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.dxc.hlsl
index d604f6d..ce8080b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bba04a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bba04a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.fxc.hlsl
index d604f6d..ce8080b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bba04a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bba04a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.spvasm
index 7155dbc..9985571 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bba04a "textureLoad_bba04a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -76,7 +76,7 @@
 %textureLoad_bba04a = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.wgsl
index e5d6250..ac367d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bba04a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
 
 fn textureLoad_bba04a() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bba04a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl
index 30d1403..7eb2d00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bbb762();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.dxc.hlsl
index c35c260..f8c3242 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_bbb762() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bbb762()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.fxc.hlsl
index c35c260..f8c3242 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_bbb762() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bbb762()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.spvasm
index cfaea63..09517fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bbb762 "textureLoad_bbb762"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_bbb762 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.wgsl
index 7cf49a8..9b93778 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bbb762.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
 
 fn textureLoad_bbb762() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bbb762();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl
index d8503db..e1521e0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: u32, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc3201();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.dxc.hlsl
index 1f5077c..256d1eb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bc3201() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc3201()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.fxc.hlsl
index 1f5077c..256d1eb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bc3201() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc3201()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.glsl
index 4ef7091..7af693a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_bc3201() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_bc3201() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u, 0u)), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.spvasm
index 26f7e54..98eaac0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bc3201 "textureLoad_bc3201"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -75,7 +75,7 @@
 %textureLoad_bc3201 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %uint_1 Lod %uint_1
                OpStore %res %23
          %28 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.wgsl
index 517266c..32e9f4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc3201.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_bc3201() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc3201();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl
index 6a348f3..312b40c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc882d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.dxc.hlsl
index dcf598f..e3fbd96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bc882d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc882d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.fxc.hlsl
index dcf598f..e3fbd96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bc882d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc882d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.spvasm
index 7425225..9485f21 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bc882d "textureLoad_bc882d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_bc882d = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.wgsl
index 4d14fdf..c8cbf5b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bc882d.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_bc882d() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc882d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl
index 382ab1f..83875c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bcbb3c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
index b8dcc1d..d8aa4e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_bcbb3c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
index b8dcc1d..d8aa4e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_bcbb3c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl
index ed85180..49d9904 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_bcbb3c() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_bcbb3c() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm
index 7e12ff9..f64fc7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bcbb3c "textureLoad_bcbb3c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_bcbb3c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Lod %int_1
                OpStore %res %19
          %29 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl
index ac26513..3c91325 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bcbb3c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_bcbb3c() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bcbb3c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl
index 2e2a7f2..4fd648c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bd990a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.dxc.hlsl
index 1b24841..c55da64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bd990a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bd990a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.fxc.hlsl
index 1b24841..c55da64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bd990a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bd990a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.spvasm
index 79d9e56..bf64fe3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bd990a "textureLoad_bd990a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_bd990a = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.wgsl
index 622e83f..d395b2a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bd990a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_bd990a() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bd990a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl
index aa5f5c5..f2fee84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bdc67a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.dxc.hlsl
index ea1505f..46587b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bdc67a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bdc67a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.fxc.hlsl
index ea1505f..46587b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bdc67a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bdc67a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.spvasm
index 045a2a0..75f99f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bdc67a "textureLoad_bdc67a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_bdc67a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.wgsl
index 9d3e774..7f55b1d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bdc67a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_bdc67a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bdc67a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl
index ec4352e..c2472fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bfd154();
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.dxc.hlsl
index c4bb1db..0193d03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bfd154() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bfd154()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.fxc.hlsl
index c4bb1db..0193d03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bfd154() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bfd154()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl
index 54616b0..bd77b03 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_bfd154() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_bfd154() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.spvasm
index db89d51..3e2da3b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bfd154 "textureLoad_bfd154"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_bfd154 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.wgsl
index 3e15154..7519592 100644
--- a/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/bfd154.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read>;
 
 fn textureLoad_bfd154() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bfd154();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl
index 8c9a4833..5d5e17d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c02b74();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.dxc.hlsl
index a7ff93f..b8ef70b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c02b74() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c02b74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.fxc.hlsl
index a7ff93f..b8ef70b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c02b74() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c02b74()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl
index ca1435d..f97532d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c02b74() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c02b74() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.spvasm
index 60a6c8d..5b792ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c02b74 "textureLoad_c02b74"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_c02b74 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.wgsl
index c3e4802..76cc493 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c02b74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read>;
 
 fn textureLoad_c02b74() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c02b74();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl
index 082a1c1..377e784 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c07013();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.dxc.hlsl
index cd5c1b3..8f5168f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c07013() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c07013()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.fxc.hlsl
index cd5c1b3..8f5168f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c07013() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c07013()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl
index 71625ee..ac6b842 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c07013() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c07013() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.spvasm
index d0fa440..268255d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c07013 "textureLoad_c07013"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_c07013 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.wgsl
index e9931bb..328ced5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c07013.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read>;
 
 fn textureLoad_c07013() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c07013();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl
index 4184454..9bb5761 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c16e00();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl
index cf36898..3e6531b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_c16e00() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl
index cf36898..3e6531b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_c16e00() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl
index fa3ed23..7ef1ec8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_c16e00() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_c16e00() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), int(1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm
index 180dc1d..3b29af6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c16e00 "textureLoad_c16e00"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_c16e00 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %int %26 0
          %28 = OpCompositeExtract %int %26 1
          %29 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl
index 8d9cd8a..5dd588d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c16e00.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_c16e00() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c16e00();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl
index c5fb056..7c3332a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c21b33();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.dxc.hlsl
index f7eb6b8..ffdefe2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c21b33() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c21b33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.fxc.hlsl
index f7eb6b8..ffdefe2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c21b33() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c21b33()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl
index a3430fc..76ca937 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c21b33() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c21b33() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.spvasm
index 51cfed9..c31ce27 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c21b33 "textureLoad_c21b33"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -80,7 +80,7 @@
 %textureLoad_c21b33 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.wgsl
index 5abbbfa..f05dc66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c21b33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_c21b33() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c21b33();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl
index 48ab3f4..4bf6c81 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2a480();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl
index bd5cb5a..8755652 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c2a480() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl
index bd5cb5a..8755652 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c2a480() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl
index 6845d9e..9772360 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_c2a480() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_c2a480() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm
index 7215b93..6f40817 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c2a480 "textureLoad_c2a480"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_c2a480 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %27 Lod %int_1
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl
index f3b58f7..f70fdd9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2a480.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_c2a480() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2a480();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl
index aa90ad8..f71ed6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2d09a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.dxc.hlsl
index b607d76..14a8ad4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c2d09a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2d09a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.fxc.hlsl
index b607d76..14a8ad4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c2d09a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2d09a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl
index 36539e0..c5b698e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_c2d09a() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_c2d09a() {
   uvec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1))));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.spvasm
index 4f63e52..30adb19 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c2d09a "textureLoad_c2d09a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_c2d09a = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.wgsl
index e367e97..f9c4a65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c2d09a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_c2d09a() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2d09a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl
index d675281..aec03ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c378ee();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl
index aa46b88..a230b86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c378ee() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c378ee()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl
index aa46b88..a230b86 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c378ee() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c378ee()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl
index 042f802..3bb20aa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_c378ee() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_c378ee() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm
index a55cdce..a09ab3a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c378ee "textureLoad_c378ee"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_c378ee = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %28 Sample %int_1
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl
index 97e0ec1..4851d64 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c378ee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_c378ee() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c378ee();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl
index 4cd80df..0ec5b4f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c40dcb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.dxc.hlsl
index 0e06b47..805feed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c40dcb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c40dcb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.fxc.hlsl
index 0e06b47..805feed 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c40dcb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c40dcb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl
index d23e8fd..225cab2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c40dcb() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c40dcb() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.spvasm
index 3fee01ef..3f196c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c40dcb "textureLoad_c40dcb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_c40dcb = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.wgsl
index 8287651..6f4d59a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c40dcb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_c40dcb() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c40dcb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl
index b489349..e8fe390 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c456bc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.dxc.hlsl
index 49c86b0..54ba8d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c456bc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c456bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.fxc.hlsl
index 49c86b0..54ba8d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c456bc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c456bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl
index 24afc4e..b46eb1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_c456bc() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_c456bc() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.spvasm
index 30e102c..37054cb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c456bc "textureLoad_c456bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_c456bc = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.wgsl
index 9d380bf..f2e10fb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c456bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read>;
 
 fn textureLoad_c456bc() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c456bc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl
index 29a3aed..5acb1fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5791b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.dxc.hlsl
index 3cce805..61e6bfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c5791b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5791b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.fxc.hlsl
index 3cce805..61e6bfd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c5791b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5791b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl
index 543e410..2d4e3fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c5791b() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c5791b() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.spvasm
index 5f56fcc..808dd8e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c5791b "textureLoad_c5791b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_c5791b = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.wgsl
index 756e075..e575bf3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5791b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read>;
 
 fn textureLoad_c5791b() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5791b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl
index 4399839..924d55f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5c86d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.dxc.hlsl
index a7285a6..699c3c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c5c86d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5c86d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.fxc.hlsl
index a7285a6..699c3c8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c5c86d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5c86d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.spvasm
index 9620df9..f7b6f0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c5c86d "textureLoad_c5c86d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_c5c86d = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.wgsl
index 5a10ed6..2d37d79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c5c86d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_c5c86d() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5c86d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl
index d65e273..7dc14f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c66b20();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.dxc.hlsl
index 50bf50c..7034c6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c66b20() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c66b20()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.fxc.hlsl
index 50bf50c..7034c6c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c66b20() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c66b20()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl
index d7d0cbf..9c0a692 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c66b20() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c66b20() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.spvasm
index 1b0f3c6..28dd808 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c66b20 "textureLoad_c66b20"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
 %textureLoad_c66b20 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.wgsl
index 0b98896..990bbe4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c66b20.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read>;
 
 fn textureLoad_c66b20() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c66b20();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl
index da8f311..67610b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7cbed();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.dxc.hlsl
index d05bb27..e82d440 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c7cbed() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7cbed()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.fxc.hlsl
index d05bb27..e82d440 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c7cbed() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7cbed()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl
index 9b74e44..534b759 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c7cbed() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c7cbed() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.spvasm
index ea65517..156a26f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c7cbed "textureLoad_c7cbed"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_c7cbed = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.wgsl
index 5460616..ede5ad5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7cbed.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read>;
 
 fn textureLoad_c7cbed() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7cbed();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl
index 81945d8..ee89199 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7e313();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.dxc.hlsl
index 8a6392d..d79bf7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c7e313() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7e313()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.fxc.hlsl
index 8a6392d..d79bf7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c7e313() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7e313()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.spvasm
index 23552a8..5f8a564 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c7e313 "textureLoad_c7e313"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_c7e313 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.wgsl
index 67f5760..b16ecda 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c7e313.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
 
 fn textureLoad_c7e313() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7e313();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl
index a99e5b9..50551df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read_write>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c80691();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.dxc.hlsl
index bc1db31..ed5f82c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c80691() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c80691()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.fxc.hlsl
index bc1db31..ed5f82c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c80691() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c80691()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl
index b92d94f..d932603 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c80691() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c80691() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.spvasm
index 05d5e3e..4b18cb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c80691 "textureLoad_c80691"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_c80691 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.wgsl
index 5472671..84c7af4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c80691.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
 
 fn textureLoad_c80691() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c80691();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl
index 0b4c5a2..b57dd4d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c8ed19();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.dxc.hlsl
index 85f94d0..f042af9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c8ed19() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c8ed19()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.fxc.hlsl
index 85f94d0..f042af9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c8ed19() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c8ed19()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.spvasm
index 68e06cf..406181c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c8ed19 "textureLoad_c8ed19"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_c8ed19 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpCompositeConstruct %v3uint %29 %30 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.wgsl
index a4b8ae9..bf758c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c8ed19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_c8ed19() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c8ed19();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl
index 48760ad..ae28715 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c98bf4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.dxc.hlsl
index e367771..057254b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_c98bf4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c98bf4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.fxc.hlsl
index e367771..057254b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_c98bf4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c98bf4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.spvasm
index cb3648e..dd3e35d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c98bf4 "textureLoad_c98bf4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_c98bf4 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.wgsl
index 0e35cf2..b551472 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c98bf4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
 
 fn textureLoad_c98bf4() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c98bf4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl
index a3eb15c..3c04e855 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9b083();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.dxc.hlsl
index ab2f610..8b6e471 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9b083() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9b083()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.fxc.hlsl
index ab2f610..8b6e471 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9b083() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9b083()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.spvasm
index 48bc0b8..8977f84 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c9b083 "textureLoad_c9b083"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_c9b083 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.wgsl
index ea4668e..69e2ddf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9b083.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_c9b083() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9b083();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl
index 0241c92..eed0086 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9cc40();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.dxc.hlsl
index 24333f2..89240fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c9cc40() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9cc40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.fxc.hlsl
index 24333f2..89240fa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c9cc40() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9cc40()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl
index 3ea2151..14ac48b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c9cc40() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c9cc40() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.spvasm
index 515bf1a..f050a11 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c9cc40 "textureLoad_c9cc40"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -78,7 +78,7 @@
 %textureLoad_c9cc40 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.wgsl
index 96b9851..ee60175 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9cc40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read>;
 
 fn textureLoad_c9cc40() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9cc40();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl
index 5d00a49..02acc41 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read_write>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9f310();
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.dxc.hlsl
index 03ace79..efc92c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9f310() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9f310()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.fxc.hlsl
index 03ace79..efc92c5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9f310() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9f310()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl
index 1fe801f..0552863 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c9f310() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c9f310() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.spvasm
index 3499148..2ad83e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c9f310 "textureLoad_c9f310"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -77,7 +77,7 @@
 %textureLoad_c9f310 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.wgsl
index 57a4b20..c696fcc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/c9f310.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
 
 fn textureLoad_c9f310() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9f310();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl
index 3caadcc..c662428 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read_write>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cac876();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.dxc.hlsl
index ae694b1..4d5fba6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cac876() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cac876()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.fxc.hlsl
index ae694b1..4d5fba6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cac876() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cac876()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.spvasm
index b723089..cbbc5ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cac876 "textureLoad_cac876"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
 %textureLoad_cac876 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.wgsl
index 23e5a75..981e19d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cac876.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
 
 fn textureLoad_cac876() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cac876();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl
index 87e4f9f..2ec4f7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cad5f2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
index 1bb6663..86f1685 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cad5f2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cad5f2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
index 1bb6663..86f1685 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cad5f2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cad5f2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl
index abd2e6a..e869c07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_cad5f2() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_cad5f2() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm
index 3023226..5b51946 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cad5f2 "textureLoad_cad5f2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_cad5f2 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %28 Sample %uint_1
                OpStore %res %23
          %32 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl
index be241a2..349475c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cad5f2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_cad5f2() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cad5f2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl
index f88afb9..b1972ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cb57c2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
index 6fce747..5d17247 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_cb57c2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
index 6fce747..5d17247 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_cb57c2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl
index c45bbd1..13238d3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_cb57c2() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_cb57c2() {
   float res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm
index c228c41..111b656 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cb57c2 "textureLoad_cb57c2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_cb57c2 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %uint %26 0
          %28 = OpCompositeExtract %uint %26 1
          %29 = OpCompositeConstruct %v3uint %27 %28 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl
index 5ac24ac..8f6a8f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cb57c2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_cb57c2() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cb57c2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl
index 0b72ffb..2abbe63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdbcf6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl
index bd4c8e5..605edf1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cdbcf6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdbcf6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl
index bd4c8e5..605edf1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cdbcf6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdbcf6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.spvasm
index e5bc1eb..0e008db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cdbcf6 "textureLoad_cdbcf6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_cdbcf6 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.wgsl
index 26f68c8..7c7b80e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdbcf6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_cdbcf6() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdbcf6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl
index 2ddea10..8b2e322 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdccd2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.dxc.hlsl
index bad8119..6d9bc3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_cdccd2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdccd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.fxc.hlsl
index bad8119..6d9bc3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_cdccd2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdccd2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.spvasm
index a6cea5b..5a43f4b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cdccd2 "textureLoad_cdccd2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_cdccd2 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.wgsl
index 287211b..2d101ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdccd2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_cdccd2() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdccd2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl
index 510f6c0..206bd15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdd343();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.dxc.hlsl
index bf0ebba..bb438bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cdd343() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdd343()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.fxc.hlsl
index bf0ebba..bb438bf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cdd343() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdd343()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl
index bd5da37..601eaf7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_cdd343() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_cdd343() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), int(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.spvasm
index 76e70a9e..6dd8902 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cdd343 "textureLoad_cdd343"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_cdd343 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.wgsl
index 73b6eaa..ca632e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cdd343.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_cdd343() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdd343();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl
index eb95102..f1ed0da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cddf6b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.dxc.hlsl
index 5df0382..3644229 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cddf6b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cddf6b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.fxc.hlsl
index 5df0382..3644229 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cddf6b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cddf6b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.spvasm
index 7967727..52f9597 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cddf6b "textureLoad_cddf6b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -72,7 +72,7 @@
 %textureLoad_cddf6b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.wgsl
index b0d5004..8f830ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cddf6b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
 
 fn textureLoad_cddf6b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cddf6b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl
index ad7df11..1a1e187 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cec477();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.dxc.hlsl
index ab86434..71cf933 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cec477() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cec477()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.fxc.hlsl
index ab86434..71cf933 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cec477() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cec477()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl
index 45b9c5e..bf72ecb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_cec477() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_cec477() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.spvasm
index 67a6bf0..e73761a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cec477 "textureLoad_cec477"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
 %textureLoad_cec477 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.wgsl
index 8ae8c12..da18f08 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cec477.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
 
 fn textureLoad_cec477() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cec477();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl
index 14683b9..8287664 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cece6c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.dxc.hlsl
index 77e9657..60e0232 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_cece6c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cece6c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.fxc.hlsl
index 77e9657..60e0232 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_cece6c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cece6c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.spvasm
index de3705e..25b141c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cece6c "textureLoad_cece6c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_cece6c = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.wgsl
index 2fbf136..56cbde8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/cece6c.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read>;
 
 fn textureLoad_cece6c() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cece6c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl
index cf9de0b..ef80fb4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d02afc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.dxc.hlsl
index 2c1bb31..539d4b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d02afc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d02afc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.fxc.hlsl
index 2c1bb31..539d4b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d02afc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d02afc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl
index 6fa9370..2fd5473 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_d02afc() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_d02afc() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.spvasm
index 156b60f..8a4dd42 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d02afc "textureLoad_d02afc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_d02afc = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.wgsl
index 9ba2744..2304d2c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d02afc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read>;
 
 fn textureLoad_d02afc() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d02afc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl
index 66ffdf8..c3f37cca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d0e351();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.dxc.hlsl
index 5ab54ad..31d2602 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d0e351() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d0e351()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.fxc.hlsl
index 5ab54ad..31d2602 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d0e351() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d0e351()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.spvasm
index 60844cf..5b4f42d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d0e351 "textureLoad_d0e351"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -80,7 +80,7 @@
 %textureLoad_d0e351 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.wgsl
index eaff233..921764e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d0e351.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_d0e351() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d0e351();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl
index 3cde6c6..f171411 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d357bb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.dxc.hlsl
index 648c020..c3aae9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d357bb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d357bb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.fxc.hlsl
index 648c020..c3aae9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d357bb() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d357bb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl
index 49c0fd9..5345c6a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d357bb() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d357bb() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.spvasm
index 2368c97..66ce39f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d357bb "textureLoad_d357bb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_d357bb = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
          %23 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.wgsl
index 950e82d..501668c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d357bb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read>;
 
 fn textureLoad_d357bb() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d357bb();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl
index f664fb2..4755095 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d37a08();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.dxc.hlsl
index e3c0992..8f0cc66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d37a08() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d37a08()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.fxc.hlsl
index e3c0992..8f0cc66 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d37a08() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d37a08()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.spvasm
index e5a50d4..91a6c83 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d37a08 "textureLoad_d37a08"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_d37a08 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.wgsl
index 26db5fa..5fbc7d4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d37a08.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_d37a08() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d37a08();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl
index d4bd07c..461073b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d3d8fc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl
index 818b845..5cd7770 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d3d8fc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d3d8fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl
index 818b845..5cd7770 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d3d8fc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d3d8fc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.spvasm
index bc7ec1e..7e31264 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d3d8fc "textureLoad_d3d8fc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_d3d8fc = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.wgsl
index 7a2e6da..7eced92 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d3d8fc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_d3d8fc() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d3d8fc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl
index 1fa9301..b87d8f9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d41c72();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.dxc.hlsl
index ab969ed..ae63940 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d41c72() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d41c72()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.fxc.hlsl
index ab969ed..ae63940 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d41c72() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d41c72()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.spvasm
index 5a79998..93a5f73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d41c72 "textureLoad_d41c72"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_d41c72 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.wgsl
index d18b3ad..67739dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d41c72.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
 
 fn textureLoad_d41c72() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d41c72();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl
index 9a853f7..0cbccd7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d4df19();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.dxc.hlsl
index e1a0e5f..bb398e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d4df19() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d4df19()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.fxc.hlsl
index e1a0e5f..bb398e7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d4df19() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d4df19()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl
index e1f2740..5fc55d6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d4df19() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d4df19() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.spvasm
index 5f03558..bdf16c3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d4df19 "textureLoad_d4df19"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_d4df19 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.wgsl
index 813277c..0070ae1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d4df19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read>;
 
 fn textureLoad_d4df19() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d4df19();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl
index 314c4ee..b856bd7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d5c48d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.dxc.hlsl
index 3016d65..4737055 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d5c48d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d5c48d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.fxc.hlsl
index 3016d65..4737055 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d5c48d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d5c48d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl
index d3b2f12..b3be982 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d5c48d() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d5c48d() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.spvasm
index b3fd62c..6bf5980 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d5c48d "textureLoad_d5c48d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_d5c48d = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.wgsl
index 3254c6c..8c9eb855 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d5c48d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read>;
 
 fn textureLoad_d5c48d() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d5c48d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl
index 15ff79c..8426f85 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d72de9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.dxc.hlsl
index fc01d3c..777a321 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d72de9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d72de9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.fxc.hlsl
index fc01d3c..777a321 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d72de9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d72de9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.spvasm
index af2d9ed..4a96423 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d72de9 "textureLoad_d72de9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_d72de9 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.wgsl
index 8b95972..c901b55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d72de9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
 
 fn textureLoad_d72de9() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d72de9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl
index fd98ff2..c3171c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d7996a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.dxc.hlsl
index 8bd863a..1e75411 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d7996a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d7996a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.fxc.hlsl
index 8bd863a..1e75411 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d7996a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d7996a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.spvasm
index 17753bb..61b150c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d7996a "textureLoad_d7996a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_d7996a = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.wgsl
index ca86861..83bd637 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d7996a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
 
 fn textureLoad_d7996a() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d7996a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl
index 3767299..35d92be 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read_write>, coords: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d79c5c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.dxc.hlsl
index f60321b..4428d3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d79c5c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d79c5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.fxc.hlsl
index f60321b..4428d3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d79c5c() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d79c5c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.spvasm
index a826fc21..73d7b42 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d79c5c "textureLoad_d79c5c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -77,7 +77,7 @@
 %textureLoad_d79c5c = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %int_1
                OpStore %res %23
          %29 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.wgsl
index d84b794..0987ed6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d79c5c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
 
 fn textureLoad_d79c5c() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d79c5c();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl
index 065f0c6..d35e6c6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d80ff3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.dxc.hlsl
index c6864dc..0c4011c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d80ff3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d80ff3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.fxc.hlsl
index c6864dc..0c4011c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d80ff3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d80ff3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.spvasm
index b4ebcd4..d57a434 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d80ff3 "textureLoad_d80ff3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_d80ff3 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
          %23 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.wgsl
index e568913..c431449 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d80ff3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
 
 fn textureLoad_d80ff3() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d80ff3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl
index e4b8bd9..8c0f62f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d81c57();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.dxc.hlsl
index 346b19a..3a58fd8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d81c57() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d81c57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.fxc.hlsl
index 346b19a..3a58fd8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d81c57() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d81c57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.spvasm
index 011866d..f8a1429 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d81c57 "textureLoad_d81c57"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -75,7 +75,7 @@
 %textureLoad_d81c57 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.wgsl
index d97cf4b..446ddfb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d81c57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read>;
 
 fn textureLoad_d81c57() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d81c57();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl
index 7e63b13..d60b8d2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d85d61();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.dxc.hlsl
index 7f7ef81..00bed55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d85d61() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d85d61()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.fxc.hlsl
index 7f7ef81..00bed55 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d85d61() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d85d61()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl
index 83557c7..2f8a4b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d85d61() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d85d61() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.spvasm
index 63002df..7b4de19 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d85d61 "textureLoad_d85d61"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_d85d61 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.wgsl
index 20d2d67..738fc12 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d85d61.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read>;
 
 fn textureLoad_d85d61() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d85d61();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl
index 2d49b9b..ca817a4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8617f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.dxc.hlsl
index 46dce9f..d3e3917 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d8617f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8617f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.fxc.hlsl
index 46dce9f..d3e3917 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d8617f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8617f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.spvasm
index b7a5ee7..c4ad65b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d8617f "textureLoad_d8617f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -81,7 +81,7 @@
 %textureLoad_d8617f = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.wgsl
index 9c6312c..ce4906a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8617f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_d8617f() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8617f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl
index 8c56b16..04e835a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read_write>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8be5a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.dxc.hlsl
index d908c91..12e7c89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d8be5a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8be5a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.fxc.hlsl
index d908c91..12e7c89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d8be5a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8be5a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.spvasm
index 0387ea5..9d37451 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d8be5a "textureLoad_d8be5a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -77,7 +77,7 @@
 %textureLoad_d8be5a = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.wgsl
index 9a4b5ed..5784581 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d8be5a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
 
 fn textureLoad_d8be5a() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8be5a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl
index e0fba98..75da3dc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d91f37();
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.dxc.hlsl
index c5ec22e..fde4f7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d91f37() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d91f37()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.fxc.hlsl
index c5ec22e..fde4f7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d91f37() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d91f37()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.spvasm
index 3f5faf7..f2e70ce 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d91f37 "textureLoad_d91f37"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_d91f37 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.wgsl
index 94f10f9..ee62460 100644
--- a/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/d91f37.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_d91f37() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d91f37();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl
index bdb77c2..eacc165 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dab04f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.dxc.hlsl
index e758fc5..bb534bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dab04f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dab04f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.fxc.hlsl
index e758fc5..bb534bc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dab04f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dab04f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.spvasm
index 96e25ea..0b270ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dab04f "textureLoad_dab04f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_dab04f = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.wgsl
index 3dc97d5..38b98e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dab04f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_dab04f() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dab04f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl
index 22f5754..502748c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dbd554();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.dxc.hlsl
index e5244a9..855a2a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dbd554() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dbd554()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.fxc.hlsl
index e5244a9..855a2a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dbd554() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dbd554()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl
index 4ecfc14..fcfa9a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dbd554() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dbd554() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.spvasm
index 9bece5a..33ecaa9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dbd554 "textureLoad_dbd554"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_dbd554 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.wgsl
index 9a03aa6..8bbdeeb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dbd554.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read>;
 
 fn textureLoad_dbd554() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dbd554();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl
index 97da197..645977e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd5859();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.dxc.hlsl
index 1af5af4..881fab4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dd5859() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd5859()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.fxc.hlsl
index 1af5af4..881fab4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dd5859() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd5859()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.spvasm
index d79c13e..ecce5b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dd5859 "textureLoad_dd5859"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_dd5859 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.wgsl
index 2af36b4..d461172 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd5859.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_dd5859() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd5859();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl
index 685d364..45085ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd8776();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.dxc.hlsl
index 7f105b2..34ca003 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_dd8776() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd8776()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.fxc.hlsl
index 7f105b2..34ca003 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_dd8776() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd8776()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.spvasm
index 1b07091..9cf3459 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dd8776 "textureLoad_dd8776"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_dd8776 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.wgsl
index 5d02244..d365543 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dd8776.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_dd8776() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd8776();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl
index 7c74270..9584855 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ddeed3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.dxc.hlsl
index 1404598..3882738 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ddeed3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ddeed3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.fxc.hlsl
index 1404598..3882738 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ddeed3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ddeed3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl
index 243b3ff..2c3dcd1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_ddeed3() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_ddeed3() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.spvasm
index 839c0b6..018d282 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ddeed3 "textureLoad_ddeed3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -78,7 +78,7 @@
 %textureLoad_ddeed3 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.wgsl
index 0fa7784..0175a04 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ddeed3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read>;
 
 fn textureLoad_ddeed3() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ddeed3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl
index 9c0b7de..6b05ba2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_de5a0e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.dxc.hlsl
index 326cdf5..67170f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_de5a0e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_de5a0e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.fxc.hlsl
index 326cdf5..67170f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_de5a0e() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_de5a0e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.spvasm
index 68580ed..0e771d1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_de5a0e "textureLoad_de5a0e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_de5a0e = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.wgsl
index a9aee22..9ea0d68 100644
--- a/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/de5a0e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_de5a0e() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_de5a0e();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl
index 7054f2e..d6bdbb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dee8e7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.dxc.hlsl
index 88593ee..be18f47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dee8e7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dee8e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.fxc.hlsl
index 88593ee..be18f47 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dee8e7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dee8e7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl
index 2f28c8f..bbf7b93 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dee8e7() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dee8e7() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.spvasm
index e619dfb..4a151cc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dee8e7 "textureLoad_dee8e7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_dee8e7 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.wgsl
index a8ac643..b333578 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dee8e7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read>;
 
 fn textureLoad_dee8e7() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dee8e7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl
index 476ab9b..78271df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_defd9a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.dxc.hlsl
index 1bf218d..fbf737e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_defd9a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_defd9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.fxc.hlsl
index 1bf218d..fbf737e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_defd9a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_defd9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.spvasm
index 50fde7e..2f04da1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_defd9a "textureLoad_defd9a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_defd9a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.wgsl
index 503145a..a3ac4b4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/defd9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
 
 fn textureLoad_defd9a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_defd9a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl
index 43ca514..b47622a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dfdf3b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl
index 44d2259..eea6f80 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dfdf3b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dfdf3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl
index 44d2259..eea6f80 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dfdf3b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dfdf3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl
index a5e51b3..f0447a6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_dfdf3b() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_dfdf3b() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.spvasm
index 65d02ab..ae5a200 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dfdf3b "textureLoad_dfdf3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
 %textureLoad_dfdf3b = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpCompositeConstruct %v3uint %30 %31 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.wgsl
index 7467ec2..6ced18a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/dfdf3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_dfdf3b() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dfdf3b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl
index 52f95fd9..47a1f57 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e1c3cf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl
index cbcb181..ab7fafc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e1c3cf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e1c3cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl
index cbcb181..ab7fafc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e1c3cf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e1c3cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.spvasm
index b8fc989..54cdb92 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e1c3cf "textureLoad_e1c3cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_e1c3cf = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.wgsl
index 647e6db..909bee2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e1c3cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
 
 fn textureLoad_e1c3cf() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e1c3cf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl
index 95d73362..2809b1e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2292f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.dxc.hlsl
index 30e7a40..45ba70f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e2292f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2292f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.fxc.hlsl
index 30e7a40..45ba70f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e2292f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2292f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl
index c7258e4..23af536 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_e2292f() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_e2292f() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.spvasm
index 5eb6d8a..cf736a9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e2292f "textureLoad_e2292f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_e2292f = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.wgsl
index 4fe865a..f646f79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2292f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read>;
 
 fn textureLoad_e2292f() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2292f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl
index 21fa0cf..2394ee9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2b3a1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl
index 46e0571..065589d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e2b3a1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2b3a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl
index 46e0571..065589d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e2b3a1() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2b3a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.spvasm
index 8f5e61f..6a883b7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e2b3a1 "textureLoad_e2b3a1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -80,7 +80,7 @@
 %textureLoad_e2b3a1 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %uint %29 0
          %31 = OpCompositeExtract %uint %29 1
          %32 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.wgsl
index 10011cb..9b73506 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2b3a1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_e2b3a1() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2b3a1();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl
index 4c75dc7..8f8dd8f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2d7da();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.dxc.hlsl
index 03c5798..8b07081 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e2d7da() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2d7da()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.fxc.hlsl
index 03c5798..8b07081 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e2d7da() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2d7da()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.spvasm
index 44211f3..b94098b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e2d7da "textureLoad_e2d7da"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_e2d7da = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.wgsl
index fafe8f5..d381f0a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e2d7da.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_e2d7da() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2d7da();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl
index 3d6a727..edebdfa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e33285();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.dxc.hlsl
index 0a4dd3d..e84d714 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e33285() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e33285()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.fxc.hlsl
index 0a4dd3d..e84d714 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e33285() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e33285()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.spvasm
index 811ea42..18bfa3a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e33285 "textureLoad_e33285"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_e33285 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.wgsl
index 12ff87f..4900811 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e33285.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
 
 fn textureLoad_e33285() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e33285();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl
index d1658fc..0ea8bd6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e35f72();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl
index 8024167..17d9d82 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e35f72() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl
index 8024167..17d9d82 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e35f72() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl
index 42d4708..b97618d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_e35f72() {
   ivec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_e35f72() {
   ivec4 res = texelFetch(arg_0_1, ivec3(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm
index 269ae9d..632c655 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e35f72 "textureLoad_e35f72"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_e35f72 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %27 Lod %uint_1
                OpStore %res %23
          %32 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl
index e0c9298..2e8e748 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e35f72.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_e35f72() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e35f72();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl
index 6da6f20..5faacb4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3b08b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.dxc.hlsl
index 20d2e5e..75135db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e3b08b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3b08b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.fxc.hlsl
index 20d2e5e..75135db 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e3b08b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3b08b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl
index 6803c1b..ee3df1b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_e3b08b() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_e3b08b() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.spvasm
index 186190d..a66a4cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e3b08b "textureLoad_e3b08b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -73,7 +73,7 @@
 %textureLoad_e3b08b = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.wgsl
index 4a6f4fd..f1fe150 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3b08b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read>;
 
 fn textureLoad_e3b08b() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3b08b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl
index f0e2093..227602a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3d2cc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
index 41ed1f9..b7ac4ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e3d2cc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
index 41ed1f9..b7ac4ba 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e3d2cc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl
index 38d0445..178ab0f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_e3d2cc() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_e3d2cc() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm
index 9b31222..9a64932 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e3d2cc "textureLoad_e3d2cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_e3d2cc = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %27 Sample %int_1
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl
index 4958ca6..8d59286 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e3d2cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_e3d2cc() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3d2cc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl
index 33ac63d..9328eae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e4051a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.dxc.hlsl
index 482f232..6544c58 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e4051a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e4051a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.fxc.hlsl
index 482f232..6544c58 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e4051a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e4051a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.spvasm
index 6bf0402..2a07552 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e4051a "textureLoad_e4051a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_e4051a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.wgsl
index 9f15587..6e4802e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e4051a.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read_write>;
 
 fn textureLoad_e4051a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e4051a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl
index 0c1eb69..8534184 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e57e92();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.dxc.hlsl
index 75dd2af..b6c7e45 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e57e92() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e57e92()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.fxc.hlsl
index 75dd2af..b6c7e45 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e57e92() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e57e92()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl
index b772a32..772be20 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_e57e92() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1)))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_e57e92() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), uint(1)))).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.spvasm
index b7e3201..48da18c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e57e92 "textureLoad_e57e92"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -76,7 +76,7 @@
 %textureLoad_e57e92 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.wgsl
index edb8c33..bea30c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e57e92.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_e57e92() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e57e92();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl
index 177547e..5db10fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e59fdf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.dxc.hlsl
index c2c55ce..c50119a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_e59fdf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e59fdf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.fxc.hlsl
index c2c55ce..c50119a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_e59fdf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e59fdf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.spvasm
index 3231068..50010f4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e59fdf "textureLoad_e59fdf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureLoad_e59fdf = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.wgsl
index 9b1ef0d..d41186a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e59fdf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read>;
 
 fn textureLoad_e59fdf() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e59fdf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl
index 26d2796..b9725fe 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e65916();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.dxc.hlsl
index d59aec5..46214c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e65916() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e65916()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.fxc.hlsl
index d59aec5..46214c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e65916() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e65916()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.spvasm
index ccae4eb..6443435 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e65916 "textureLoad_e65916"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -80,7 +80,7 @@
 %textureLoad_e65916 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.wgsl
index 23ee455..74bb0cd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e65916.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read>;
 
 fn textureLoad_e65916() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e65916();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl
index e434b30..df9217f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e893d7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.dxc.hlsl
index 6856157..3e4b7f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e893d7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e893d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.fxc.hlsl
index 6856157..3e4b7f6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e893d7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e893d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl
index fd5a92c..7fca3f0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e893d7() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e893d7() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.spvasm
index e2343a7..b4eef3e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e893d7 "textureLoad_e893d7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -75,7 +75,7 @@
 %textureLoad_e893d7 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.wgsl
index d45da77..03fd48e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e893d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read>;
 
 fn textureLoad_e893d7() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e893d7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl
index a709dcc..764a924 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e92dd0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.dxc.hlsl
index f539d21..efce4ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e92dd0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e92dd0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.fxc.hlsl
index f539d21..efce4ec 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e92dd0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e92dd0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl
index 44a529a..3b5d5b6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e92dd0() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e92dd0() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.spvasm
index a19a6d4..b7fe413 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e92dd0 "textureLoad_e92dd0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -72,7 +72,7 @@
 %textureLoad_e92dd0 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.wgsl
index 816e66e..d534f53 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e92dd0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read>;
 
 fn textureLoad_e92dd0() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e92dd0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl
index bcc28e2..0e099ad 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e9eb65();
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.dxc.hlsl
index 351e6f4..70bdf15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_e9eb65() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e9eb65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.fxc.hlsl
index 351e6f4..70bdf15 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_e9eb65() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e9eb65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.spvasm
index f42744b..9dd0a79 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e9eb65 "textureLoad_e9eb65"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
 %textureLoad_e9eb65 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %uint %28 0
          %30 = OpCompositeExtract %uint %28 1
          %31 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.wgsl
index e3b63fc..2a4bd1f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/e9eb65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_e9eb65() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e9eb65();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl
index 017ac36..ed5b2e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ea2abd();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.dxc.hlsl
index dc3834c..75fe9ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ea2abd() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ea2abd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.fxc.hlsl
index dc3834c..75fe9ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ea2abd() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ea2abd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl
index 8bd817d..80d8a04 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_ea2abd() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_ea2abd() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.spvasm
index ca736af..a9860b1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ea2abd "textureLoad_ea2abd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_ea2abd = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.wgsl
index bd57e46..632d005 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ea2abd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read>;
 
 fn textureLoad_ea2abd() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ea2abd();
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl
index acf2132..78b4b83 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eb573b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.dxc.hlsl
index f5b068d..1fda40f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_eb573b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eb573b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.fxc.hlsl
index f5b068d..1fda40f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_eb573b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eb573b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl
index d97987d..d73e722 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_eb573b() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_eb573b() {
   ivec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.spvasm
index 5bb5fd9..32398f2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_eb573b "textureLoad_eb573b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
 %textureLoad_eb573b = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %27
                OpStore %res %23
          %30 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.wgsl
index 5d0f160..7a6f5ca 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eb573b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read>;
 
 fn textureLoad_eb573b() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eb573b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl
index 513b829f..427dea0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ebfb92();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
index 6bc9c38..1df8bd2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ebfb92() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ebfb92()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
index 6bc9c38..1df8bd2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ebfb92() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ebfb92()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl
index 35e0769..a2281c9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_ebfb92() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_ebfb92() {
   uvec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm
index e0413c1..62280cf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ebfb92 "textureLoad_ebfb92"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -78,7 +78,7 @@
 %textureLoad_ebfb92 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %28 Lod %uint_1
                OpStore %res %23
          %32 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl
index 83fff8c..9aca2e5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ebfb92.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_ebfb92() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ebfb92();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl
index 224be4f..a5191fc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ecc823();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.dxc.hlsl
index 3b68a58..2158e7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ecc823() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ecc823()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.fxc.hlsl
index 3b68a58..2158e7d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ecc823() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ecc823()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl
index 2ce30c3..a678883 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_ecc823() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_ecc823() {
   uvec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.spvasm
index 7a1334c..e39d1f2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ecc823 "textureLoad_ecc823"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_ecc823 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.wgsl
index 5bc9f90..d8bc851 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ecc823.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read>;
 
 fn textureLoad_ecc823() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ecc823();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl
index d27df91..7339ca3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ed55a8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.dxc.hlsl
index 709fb38..720340b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ed55a8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ed55a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.fxc.hlsl
index 709fb38..720340b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ed55a8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ed55a8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.spvasm
index ab5ef25..0bd54a8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ed55a8 "textureLoad_ed55a8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_ed55a8 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.wgsl
index 1c13276..4dd6baa 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ed55a8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_ed55a8() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ed55a8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl
index b72d1a1..210ba7a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec3<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ee33c5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.dxc.hlsl
index 782fc4a..53c7679 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ee33c5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ee33c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.fxc.hlsl
index 782fc4a..53c7679 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ee33c5() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ee33c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl
index 35b1764..c04f36b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_ee33c5() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_ee33c5() {
   ivec4 res = imageLoad(arg_0, ivec3(uvec3(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.spvasm
index 68c818c..ce6b388 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ee33c5 "textureLoad_ee33c5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
 %textureLoad_ee33c5 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.wgsl
index af7d8ef..0b8ee9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ee33c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read>;
 
 fn textureLoad_ee33c5() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ee33c5();
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl
index a7be6ba..2e963c7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eecf7d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.dxc.hlsl
index 8264af3..54b78dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_eecf7d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eecf7d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.fxc.hlsl
index 8264af3..54b78dd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_eecf7d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eecf7d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.spvasm
index a059f82..c3a175c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_eecf7d "textureLoad_eecf7d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -81,7 +81,7 @@
 %textureLoad_eecf7d = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.wgsl
index 1515d2b..85923fd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/eecf7d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_eecf7d() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eecf7d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl
index b152233..cb59e9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read_write>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef2ec3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl
index 726e321..1b68efd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ef2ec3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef2ec3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl
index 726e321..1b68efd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ef2ec3() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef2ec3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.spvasm
index 703f8df..44e4e7c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ef2ec3 "textureLoad_ef2ec3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_ef2ec3 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.wgsl
index c796450..c00aa65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef2ec3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
 
 fn textureLoad_ef2ec3() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef2ec3();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl
index 2a97702..45a00a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef5405();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.dxc.hlsl
index b2b16e6..f6b7684 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ef5405() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef5405()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.fxc.hlsl
index b2b16e6..f6b7684 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ef5405() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef5405()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.spvasm
index 168781f..77c8322 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ef5405 "textureLoad_ef5405"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_ef5405 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.wgsl
index 5da665a..7514dee 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ef5405.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read>;
 
 fn textureLoad_ef5405() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef5405();
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl
index 0dd39f9..0ecdaf9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_efa787();
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.dxc.hlsl
index 9cffb18..9f43381 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_efa787() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_efa787()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.fxc.hlsl
index 9cffb18..9f43381 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_efa787() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_efa787()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl
index 20d7db2..e43ba56 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_efa787() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_efa787() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.spvasm
index d9aef14..0f85c61 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_efa787 "textureLoad_efa787"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_efa787 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.wgsl
index d7e278a..45d6ecd 100644
--- a/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/efa787.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_efa787() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_efa787();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl
index d80c940..8d8fd13 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0514a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.dxc.hlsl
index 1b14e35..ae85356 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f0514a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0514a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.fxc.hlsl
index 1b14e35..ae85356 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f0514a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0514a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.spvasm
index cad39ef..3ea535f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f0514a "textureLoad_f0514a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_f0514a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.wgsl
index 5782205..ee11ae3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0514a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
 
 fn textureLoad_f0514a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0514a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl
index 9b219d1..d43a4e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read>, coords: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f06b69();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.dxc.hlsl
index 9e65efc..7a04599 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f06b69() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f06b69()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.fxc.hlsl
index 9e65efc..7a04599 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f06b69() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f06b69()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl
index 55d2f47..ac0b603 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f06b69() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f06b69() {
   ivec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.spvasm
index fd54710..97e4fa7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f06b69 "textureLoad_f06b69"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -78,7 +78,7 @@
 %textureLoad_f06b69 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %int_1
                OpStore %res %23
          %28 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.wgsl
index 32335f9..8930eb8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f06b69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read>;
 
 fn textureLoad_f06b69() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f06b69();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl
index 7647a881..15ded96 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0abad();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl
index 00b0af8..c5bdf6d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f0abad() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl
index 00b0af8..c5bdf6d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f0abad() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl
index 27228f3..a97c4a1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_f0abad() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_f0abad() {
   vec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm
index 9dbf1f6..b64664b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f0abad "textureLoad_f0abad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -74,7 +74,7 @@
 %textureLoad_f0abad = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageFetch %v4float %20 %24 Sample %int_1
                OpStore %res %19
          %29 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl
index 95fe4b9..408470b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f0abad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_f0abad() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0abad();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl
index 12ec389..9970986 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f1c549();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.dxc.hlsl
index 62d3619..6174805 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f1c549() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f1c549()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.fxc.hlsl
index 62d3619..6174805 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f1c549() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f1c549()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl
index 7a18993..6fe094b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_f1c549() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_f1c549() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.spvasm
index 0673ee3..c37a3d5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f1c549 "textureLoad_f1c549"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -74,7 +74,7 @@
 %textureLoad_f1c549 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.wgsl
index 2c54669..5216ecf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f1c549.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
 
 fn textureLoad_f1c549() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f1c549();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl
index ae3257a..4b49c04 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2a7ff();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl
index 73a751c..6df5a3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f2a7ff() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2a7ff()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl
index 73a751c..6df5a3f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f2a7ff() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2a7ff()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl
index 267c793..aee0479 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f2a7ff() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f2a7ff() {
   vec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.spvasm
index e99590a..9863375 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f2a7ff "textureLoad_f2a7ff"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -73,7 +73,7 @@
 %textureLoad_f2a7ff = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.wgsl
index 12b3a1e..740d3e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2a7ff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read>;
 
 fn textureLoad_f2a7ff() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2a7ff();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl
index 3c2e64b..3e9c32c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2bdd4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl
index ea85989..699ef62 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f2bdd4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2bdd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl
index ea85989..699ef62 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f2bdd4() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2bdd4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.spvasm
index 8cbdc30..e1852c4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f2bdd4 "textureLoad_f2bdd4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_f2bdd4 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.wgsl
index cff7336..df12f99 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2bdd4.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_f2bdd4() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2bdd4();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl
index 7bd79bd..94ee1eb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2c311();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.dxc.hlsl
index 5a8c9ff..1e6f12c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_f2c311() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2c311()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.fxc.hlsl
index 5a8c9ff..1e6f12c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_f2c311() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2c311()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.spvasm
index dd2cff8..ff3a7e9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f2c311 "textureLoad_f2c311"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
 %textureLoad_f2c311 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.wgsl
index 99b7b75..3862753 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f2c311.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_f2c311() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2c311();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl
index 38628fc..da208f3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f348d9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl
index a494bb6..de51110 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f348d9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl
index a494bb6..de51110 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f348d9() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl
index 0957595..ab5e32c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_f348d9() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_f348d9() {
   vec4 res = texelFetch(arg_0_1, ivec3(uvec3(uvec2(1u), 1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm
index e4b7880..03e274a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f348d9 "textureLoad_f348d9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_f348d9 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl
index 7bf574e..1aa4d65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f348d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_f348d9() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f348d9();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl
index 301597b..be3f513 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f35ac7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.dxc.hlsl
index f61831b..a9b2518 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f35ac7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f35ac7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.fxc.hlsl
index f61831b..a9b2518 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f35ac7() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f35ac7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl
index d35ea44..74b95ea 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f35ac7() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f35ac7() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.spvasm
index 8dec7bc..bd6ae2e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f35ac7 "textureLoad_f35ac7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_f35ac7 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.wgsl
index 46dd722..12aa051 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f35ac7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read>;
 
 fn textureLoad_f35ac7() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f35ac7();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl
index 710f18b..2cdbda8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f379e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.dxc.hlsl
index b5845c7..4ce4e63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f379e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f379e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.fxc.hlsl
index b5845c7..4ce4e63 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f379e2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f379e2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl
index 8724017..79ffdd9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f379e2() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f379e2() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.spvasm
index b0c6ef3..ad657ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f379e2 "textureLoad_f379e2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_f379e2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.wgsl
index d91c349..025d42f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f379e2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_f379e2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f379e2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl
index fe94088..86abfe9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f56e6f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.dxc.hlsl
index f2fedab..d949637 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_f56e6f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f56e6f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.fxc.hlsl
index f2fedab..d949637 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_f56e6f() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f56e6f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl
index 075145e..0066f9f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_f56e6f() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_f56e6f() {
   uvec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.spvasm
index d34e4b4..ea39df6 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f56e6f "textureLoad_f56e6f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_f56e6f = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %28
                OpStore %res %23
          %31 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.wgsl
index 6c1893c..b59a85f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f56e6f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read>;
 
 fn textureLoad_f56e6f() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f56e6f();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl
index 7562bb7..4469944 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5aee2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.dxc.hlsl
index 7a68f62..1e39a00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f5aee2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5aee2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.fxc.hlsl
index 7a68f62..1e39a00 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f5aee2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5aee2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.spvasm
index 22e4d0b..0851d65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f5aee2 "textureLoad_f5aee2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -74,7 +74,7 @@
 %textureLoad_f5aee2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.wgsl
index 942e60b..0d1ad25 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5aee2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read>;
 
 fn textureLoad_f5aee2() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5aee2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl
index 3dbace8..f1fdf9f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5fbc6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl
index 31d0d22..328425f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f5fbc6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5fbc6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl
index 31d0d22..328425f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f5fbc6() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5fbc6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.spvasm
index b21de1e..b19530d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f5fbc6 "textureLoad_f5fbc6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_f5fbc6 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.wgsl
index 36270a8..c30f924 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f5fbc6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_f5fbc6() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5fbc6();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl
index d86eb4b..3df673b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f74bd8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.dxc.hlsl
index 40b96d1..c98a3da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f74bd8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f74bd8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.fxc.hlsl
index 40b96d1..c98a3da 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f74bd8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f74bd8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.spvasm
index 39f7d4c..ef0f827 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f74bd8 "textureLoad_f74bd8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_f74bd8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.wgsl
index 5ae2bdb..ea67164 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f74bd8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read>;
 
 fn textureLoad_f74bd8() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f74bd8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl
index 3dcfc26..5e95b48 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read_write>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f3bc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl
index 7e25b25..ca3a953 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f7f3bc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f3bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl
index 7e25b25..ca3a953 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f7f3bc() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f3bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.spvasm
index 9014ab4..d368085 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f7f3bc "textureLoad_f7f3bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -73,7 +73,7 @@
 %textureLoad_f7f3bc = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.wgsl
index 02b9c74..436f2e8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f3bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
 
 fn textureLoad_f7f3bc() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f3bc();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl
index e7304b6..f58d3ae 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f936();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.dxc.hlsl
index cf7de58..f5cb411 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f7f936() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f936()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.fxc.hlsl
index cf7de58..f5cb411 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f7f936() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f936()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl
index 2f99115..673aa65 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f7f936() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f7f936() {
   vec4 res = imageLoad(arg_0, ivec3(uvec3(uvec2(1u), 1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.spvasm
index c97e21a..7e8482a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f7f936 "textureLoad_f7f936"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -74,7 +74,7 @@
 %textureLoad_f7f936 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpCompositeConstruct %v3uint %26 %27 %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.wgsl
index 560d91e..fde4ce1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f7f936.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_f7f936() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f936();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl
index f4a4ab1..5c4e438 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f81792();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.dxc.hlsl
index 8933b4d..62e1a70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f81792() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f81792()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.fxc.hlsl
index 8933b4d..62e1a70 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f81792() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f81792()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl
index 331e5ca..7ffaccf 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_f81792() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_f81792() {
   vec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.spvasm
index fdd99f1..3475eb3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f81792 "textureLoad_f81792"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_f81792 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %int %25 0
          %27 = OpCompositeExtract %int %25 1
          %28 = OpCompositeConstruct %v3int %26 %27 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.wgsl
index 3df97de..3527034 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f81792.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_f81792() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f81792();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl
index c8796a5..0ca4d89 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read_write>, coords: u32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f82eb2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.dxc.hlsl
index 3dd4695..dadd619 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f82eb2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f82eb2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.fxc.hlsl
index 3dd4695..dadd619 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f82eb2() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f82eb2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.spvasm
index 07d330b..257b8c1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f82eb2 "textureLoad_f82eb2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -71,7 +71,7 @@
 %textureLoad_f82eb2 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %uint_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.wgsl
index b71b860..72e537f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f82eb2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
 
 fn textureLoad_f82eb2() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f82eb2();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl
index 76e2368..231ab73 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f85291();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl
index e0f6eee..e73be07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f85291() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl
index e0f6eee..e73be07 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f85291() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl
index 805b265..65ec0ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_f85291() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_f85291() {
   ivec4 res = texelFetch(arg_0_1, ivec2(1), int(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm
index 962118a..c99e6b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f85291 "textureLoad_f85291"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
 %textureLoad_f85291 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4int %24 %27 Lod %uint_1
                OpStore %res %23
          %32 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl
index 3608d62..d9b2435 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f85291.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_f85291() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f85291();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl
index bae880c..6978578 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f8a2e8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl
index c6c8386..586289c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f8a2e8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f8a2e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl
index c6c8386..586289c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f8a2e8() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f8a2e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl
index a5c54ac..c7eb420 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f8a2e8() {
   vec4 res = imageLoad(arg_0, ivec3(1)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f8a2e8() {
   vec4 res = imageLoad(arg_0, ivec3(1)).bgra;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.spvasm
index 6d9463f..3ce8ae2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f8a2e8 "textureLoad_f8a2e8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_f8a2e8 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
          %25 = OpVectorShuffle %v4float %19 %19 2 1 0 3
                OpStore %res %25
diff --git a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.wgsl
index f9aeb1d..1500d9b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f8a2e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read>;
 
 fn textureLoad_f8a2e8() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f8a2e8();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl
index 7b2e478..2803704 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f92c2d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.dxc.hlsl
index 5ebd5a5..64c88ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f92c2d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f92c2d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.fxc.hlsl
index 5ebd5a5..64c88ff 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f92c2d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f92c2d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl
index 4639aea..bfff0e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_f92c2d() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_f92c2d() {
   vec4 res = imageLoad(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.spvasm
index 268e457..d06f993 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f92c2d "textureLoad_f92c2d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -74,7 +74,7 @@
 %textureLoad_f92c2d = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.wgsl
index 775d38d..4a814df 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f92c2d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
 
 fn textureLoad_f92c2d() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f92c2d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl
index f36bc3a..a760820 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read>, coords: u32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f9eaaf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl
index 7771003..144e3b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f9eaaf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f9eaaf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl
index 7771003..144e3b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f9eaaf() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f9eaaf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl
index 4b94f7a..4d5179a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f9eaaf() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f9eaaf() {
   ivec4 res = imageLoad(arg_0, ivec2(uvec2(1u, 0u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.spvasm
index 5946717..6cfb185 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f9eaaf "textureLoad_f9eaaf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_f9eaaf = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %uint_1
                OpStore %res %23
          %29 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.wgsl
index f4d02be..36c4bd4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/f9eaaf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read>;
 
 fn textureLoad_f9eaaf() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f9eaaf();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl
index 275adf9..aa97a2c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc47ff();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.dxc.hlsl
index 4cde5f6..8c43d35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_fc47ff() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc47ff()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.fxc.hlsl
index 4cde5f6..8c43d35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_fc47ff() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc47ff()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.spvasm
index b231274..c4cb62a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fc47ff "textureLoad_fc47ff"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
 %textureLoad_fc47ff = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4int %24 %28
                OpStore %res %23
          %31 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.wgsl
index 6dfcac74..b59aae9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc47ff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
 
 fn textureLoad_fc47ff() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc47ff();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl
index 063c36a..b245101 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -41,8 +44,6 @@
   var res: vec4<i32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc6d36();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.dxc.hlsl
index a1354dd..68ff974 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_fc6d36() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc6d36()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.fxc.hlsl
index a1354dd..68ff974 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_fc6d36() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc6d36()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl
index c57f5bd..dbb9927 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_fc6d36() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_fc6d36() {
   ivec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.spvasm
index 0fe31bf..e60b451 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fc6d36 "textureLoad_fc6d36"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
 %textureLoad_fc6d36 = OpFunction %v4int None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %29 = OpCompositeExtract %int %28 0
          %30 = OpCompositeExtract %int %28 1
          %31 = OpCompositeConstruct %v3int %29 %30 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.wgsl
index 9e2ebf6..97f7ab4 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fc6d36.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_fc6d36() -> vec4<i32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc6d36();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl
index df6e0c8..a86863c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: i32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fcd23d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
index 79d613d..a23069f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_fcd23d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
index 79d613d..a23069f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_fcd23d() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl
index a521faf..11dcbf2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_fcd23d() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_fcd23d() {
   float res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm
index 702c3a6..a336f3c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fcd23d "textureLoad_fcd23d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -75,7 +75,7 @@
 %textureLoad_fcd23d = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %20 = OpImageFetch %v4float %21 %25 Sample %int_1
          %19 = OpCompositeExtract %float %20 0
                OpStore %res %19
diff --git a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl
index d39b4df..3e4f552 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fcd23d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_fcd23d() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fcd23d();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl
index 3a5d987..9235df8 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd6442();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.dxc.hlsl
index 59112e6..80b6663 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fd6442() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd6442()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.fxc.hlsl
index 59112e6..80b6663 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fd6442() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd6442()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl
index 452d5f8..7ee010e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_fd6442() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_fd6442() {
   uvec4 res = imageLoad(arg_0, ivec2(uvec2(1u)));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.spvasm
index fbe695c..ab4b3c0 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fd6442 "textureLoad_fd6442"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
 %textureLoad_fd6442 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageRead %v4uint %24 %27
                OpStore %res %23
          %30 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.wgsl
index e0c5f0d..cad90f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd6442.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read>;
 
 fn textureLoad_fd6442() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd6442();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl
index f2a8d5e..dd338a3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd9606();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.dxc.hlsl
index 771d111..dec400f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_fd9606() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd9606()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.fxc.hlsl
index 771d111..dec400f 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_fd9606() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd9606()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.spvasm
index 376be48..dc69a98 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fd9606 "textureLoad_fd9606"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -75,7 +75,7 @@
 %textureLoad_fd9606 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %26 = OpCompositeExtract %uint %25 0
          %27 = OpCompositeExtract %uint %25 1
          %28 = OpBitcast %uint %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.wgsl
index aa00c25..ebaf90b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fd9606.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_fd9606() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd9606();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl
index 5f4bb3c..e6aec4a 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fdebd0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.dxc.hlsl
index 2ed571b..b337ab2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fdebd0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fdebd0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.fxc.hlsl
index 2ed571b..b337ab2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fdebd0() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fdebd0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl
index e8c0517..813f938 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_fdebd0() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_fdebd0() {
   uvec4 res = imageLoad(arg_0, ivec3(ivec2(1), 1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.spvasm
index fc2ba8d..4c20fa2 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fdebd0 "textureLoad_fdebd0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
 %textureLoad_fdebd0 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpCompositeConstruct %v3int %30 %31 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.wgsl
index 28a8ef9..8fa77e1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fdebd0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_fdebd0() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fdebd0();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl
index ef73a7a..2a663e3 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: i32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<u32>(1u), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe0565();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl
index 07f3507..e202733 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fe0565() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe0565()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl
index 07f3507..e202733 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fe0565() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe0565()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl
index 39854ed..b0b2b8b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_fe0565() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_fe0565() {
   uvec4 res = texelFetch(arg_0_1, ivec2(uvec2(1u)), 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm
index dd7d3a9..2392736 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fe0565 "textureLoad_fe0565"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
 %textureLoad_fe0565 = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageFetch %v4uint %24 %27 Sample %int_1
                OpStore %res %23
          %32 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl
index 6ee9344..ffe7c04 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe0565.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_fe0565() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe0565();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl
index 766145c..b45d484 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read>, coords: i32) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe222a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.dxc.hlsl
index 654e076..7e1f70c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_fe222a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe222a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.fxc.hlsl
index 654e076..7e1f70c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_fe222a() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe222a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl
index 9802842..838bfcc 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_fe222a() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_fe222a() {
   vec4 res = imageLoad(arg_0, ivec2(1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.spvasm
index 31ccacd..e2a09b9 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fe222a "textureLoad_fe222a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -74,7 +74,7 @@
 %textureLoad_fe222a = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %int_1
                OpStore %res %19
          %25 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.wgsl
index d6a7793..9df02a7 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe222a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read>;
 
 fn textureLoad_fe222a() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe222a();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl
index 8c2bc7b..2953359 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -41,8 +44,6 @@
   var res: vec4<u32> = textureLoad(arg_0, vec2<i32>(1i), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe2c1b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl
index c8a1a0c..a9123f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_fe2c1b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe2c1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl
index c8a1a0c..a9123f1 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_fe2c1b() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe2c1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.spvasm
index aeb568d..44a2a9d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fe2c1b "textureLoad_fe2c1b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
 %textureLoad_fe2c1b = OpFunction %v4uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %30 = OpCompositeExtract %int %29 0
          %31 = OpCompositeExtract %int %29 1
          %32 = OpBitcast %int %uint_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.wgsl
index 31e5b63..8215015 100644
--- a/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/fe2c1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_fe2c1b() -> vec4<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe2c1b();
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl
index 272e4a2..ea2952d 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -41,8 +44,6 @@
   var res: vec4<f32> = textureLoad(arg_0, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_feab99();
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.dxc.hlsl
index ba1c5ba..8a6d53c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_feab99() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_feab99()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.fxc.hlsl
index ba1c5ba..8a6d53c 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_feab99() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_feab99()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl
index 8f6d227..be70557 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_feab99() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_feab99() {
   vec4 res = imageLoad(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.spvasm
index 7dfdbb7..a354beb 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_feab99 "textureLoad_feab99"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,13 +31,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -75,7 +75,7 @@
 %textureLoad_feab99 = OpFunction %v4float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %20 = OpLoad %12 %arg_0
+         %20 = OpLoad %15 %arg_0
          %19 = OpImageRead %v4float %20 %24
                OpStore %res %19
          %27 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.wgsl
index ad370a9..66fd8b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/feab99.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read>;
 
 fn textureLoad_feab99() -> vec4<f32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_feab99();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl
index 8f1450b..8e14712 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: u32) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = textureLoad(arg_0, vec2<i32>(1i), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ff1119();
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl
index d50d026..f02d8b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_ff1119() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl
index d50d026..f02d8b5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_ff1119() {
@@ -5,8 +6,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl
index 5f4a4ca..9844bc5 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_ff1119() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_ff1119() {
   float res = texelFetch(arg_0_1, ivec3(ivec2(1), 1), int(1u)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm
index c234bf7..60be62b 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ff1119 "textureLoad_ff1119"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -31,12 +31,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -48,12 +48,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -76,7 +76,7 @@
 %textureLoad_ff1119 = OpFunction %float None %16
          %18 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %21 = OpLoad %12 %arg_0
+         %21 = OpLoad %15 %arg_0
          %27 = OpCompositeExtract %int %26 0
          %28 = OpCompositeExtract %int %26 1
          %29 = OpCompositeConstruct %v3int %27 %28 %int_1
diff --git a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl
index 389260a..8dc95ac 100644
--- a/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureLoad/ff1119.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_ff1119() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ff1119();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl
index 7fba6d3..f8d3f30 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_014a3b();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
index 730fdd4..5a3db4e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_014a3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_014a3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
index 730fdd4..5a3db4e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_014a3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_014a3b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl
index e39c49d..8929873 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.spvasm
index e0dae77..710f24c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_014a3b "textureNumLayers_014a3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_014a3b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.wgsl
index c477905..45a80ce 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/014a3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureNumLayers_014a3b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_014a3b();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl
index 31c2d1c..1279b13 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_071ebc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
index 464ba1b..c2d3b4a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_071ebc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_071ebc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
index 464ba1b..c2d3b4a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_071ebc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_071ebc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.spvasm
index 7184d21..fcc48f1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_071ebc "textureNumLayers_071ebc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_071ebc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.wgsl
index 7c0eb15..0c57f8a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/071ebc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureNumLayers_071ebc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_071ebc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl
index 668f029..73c8e51 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0856ae();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl
index e1f3570..5935d35 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_0856ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0856ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl
index e1f3570..5935d35 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_0856ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0856ae()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.glsl
index be7cd3c..a371209 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_0856ae() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_0856ae() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.spvasm
index 3c4d8fc..68d46d5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_0856ae "textureNumLayers_0856ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_0856ae = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.wgsl
index 2320f1b..d8c0947 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0856ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureNumLayers_0856ae() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0856ae();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl
index e7e9ff9..fb03398 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureNumLayers(texture: texture_2d_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0ec222();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
index 6abb9ca..4d74aa5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0ec222() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0ec222()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
index 6abb9ca..4d74aa5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0ec222() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0ec222()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.glsl
index 4f5d4da..fdf25e6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_0ec222() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_0ec222() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.spvasm
index 080c812..1c921a7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_0ec222 "textureNumLayers_0ec222"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureNumLayers_0ec222 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.wgsl
index 4f521ee..8d9c4e9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0ec222.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureNumLayers_0ec222() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0ec222();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl
index 8e382a1..d1833ea 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0fe8dc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl
index 18d7c20..9ad89ff 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0fe8dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0fe8dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl
index 18d7c20..9ad89ff 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0fe8dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0fe8dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl
index 094d0f3..7261677 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.spvasm
index 4661978..e137e17 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_0fe8dc "textureNumLayers_0fe8dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_0fe8dc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.wgsl
index 1caba37..e00f0ca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/0fe8dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureNumLayers_0fe8dc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0fe8dc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl
index e3db055..897582e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_17ccad();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl
index 49083b3..c961a11 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_17ccad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_17ccad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl
index 49083b3..c961a11 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_17ccad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_17ccad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.spvasm
index 1faea24..2c51a44 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_17ccad "textureNumLayers_17ccad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_17ccad = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.wgsl
index 1d71995..0cb0b82 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/17ccad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureNumLayers_17ccad() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_17ccad();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl
index e92ebb4..6d92153 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<bgra8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_1f858a();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
index 5478c82..952ea3b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_1f858a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_1f858a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
index 5478c82..952ea3b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_1f858a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_1f858a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl
index 0bdd5c9..43c1b28 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.spvasm
index e99ae2a..51ea35c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_1f858a "textureNumLayers_1f858a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_1f858a = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.wgsl
index 11804a5..234e94c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/1f858a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, write>;
 
 fn textureNumLayers_1f858a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_1f858a();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl
index 3421028..4c5df4a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_24d572();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.dxc.hlsl
index 4944100..86b2307 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_24d572() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_24d572()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.fxc.hlsl
index 4944100..86b2307 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_24d572() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_24d572()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.spvasm
index 8918e82..2203bfb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_24d572 "textureNumLayers_24d572"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_24d572 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.wgsl
index c7dccb0..a67a2c5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/24d572.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureNumLayers_24d572() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_24d572();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl
index 64e5f4e..39beb00 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_26c9f9();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl
index a9750c3..f5adb9a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_26c9f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_26c9f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl
index a9750c3..f5adb9a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_26c9f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_26c9f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl
index b9034c3..9888b69 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.spvasm
index d9aee3f..f63f78b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_26c9f9 "textureNumLayers_26c9f9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_26c9f9 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.wgsl
index 122eb19..1605fa9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/26c9f9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureNumLayers_26c9f9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_26c9f9();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl
index 8b5c018..03d4b8a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2a48dc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl
index a213e43..8be98ca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_2a48dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2a48dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl
index a213e43..8be98ca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_2a48dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2a48dc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.glsl
index 8d2d329..4e74cd9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_2a48dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_2a48dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.spvasm
index 648c31e..59aef02 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_2a48dc "textureNumLayers_2a48dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_2a48dc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.wgsl
index 39ad715..455472a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2a48dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureNumLayers_2a48dc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2a48dc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl
index 5d65a5b..191e63c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2d95ea();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl
index 334e6e83..00af039 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_2d95ea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2d95ea()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl
index 334e6e83..00af039 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_2d95ea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2d95ea()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.spvasm
index 99272fd..fa5ccf3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_2d95ea "textureNumLayers_2d95ea"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_2d95ea = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.wgsl
index 4c9cc1b..2c6ff80 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/2d95ea.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureNumLayers_2d95ea() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2d95ea();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl
index 5bd5d0c..2dc7a3b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_327d70();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.dxc.hlsl
index 27d62dc..740659e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_327d70() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_327d70()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.fxc.hlsl
index 27d62dc..740659e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_327d70() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_327d70()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.glsl
index 4d0f009..e3229e2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_327d70() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_327d70() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.spvasm
index 1cde908..14e7f0d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_327d70 "textureNumLayers_327d70"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_327d70 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.wgsl
index d44c1bf..dfa4e13 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/327d70.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureNumLayers_327d70() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_327d70();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl
index 2f9cc90..ce4c18e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_32ca10();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl
index a927850..fc872b3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_32ca10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_32ca10()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl
index a927850..fc872b3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_32ca10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_32ca10()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.glsl
index f58efda..8c21e1c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_32ca10() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_32ca10() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.spvasm
index fbc9187..766a028 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_32ca10 "textureNumLayers_32ca10"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_32ca10 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.wgsl
index b1db416..456cdbc 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/32ca10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureNumLayers_32ca10() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_32ca10();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl
index a089a86..c61c85d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3465ec();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
index 17435f6..a3a4ec5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3465ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3465ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
index 17435f6..a3a4ec5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3465ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3465ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl
index 3594d80..259dd66 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.spvasm
index 77a00ee..43219ed 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3465ec "textureNumLayers_3465ec"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_3465ec = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.wgsl
index 35938c0..f1f3eb1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3465ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureNumLayers_3465ec() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3465ec();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
index b341efe..d6334d8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureNumLayers(texture: texture_cube_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_34cefa();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
index 9339bc1..12bddc3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_34cefa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_34cefa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
index 9339bc1..12bddc3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_34cefa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_34cefa()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm
index ad3b7f0..25ba0e4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_34cefa "textureNumLayers_34cefa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureNumLayers_34cefa = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl
index 1134a95..f69a237 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/34cefa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureNumLayers_34cefa() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_34cefa();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl
index bbadf85..13b6517 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3580ab();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
index 4f77d74..d5f2c40 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3580ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3580ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
index 4f77d74..d5f2c40 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3580ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3580ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.spvasm
index 8d41ae5..284b6e5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3580ab "textureNumLayers_3580ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -78,7 +78,7 @@
 %textureNumLayers_3580ab = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.wgsl
index b339c6e1..4c1f2c7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3580ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureNumLayers_3580ab() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3580ab();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl
index 4e07a14..4c69dd1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_379cc5();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl
index 7472c26..e763f5c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_379cc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_379cc5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl
index 7472c26..e763f5c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_379cc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_379cc5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl
index 0c4003f..428739b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.spvasm
index f0739d1..4e7607a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_379cc5 "textureNumLayers_379cc5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_379cc5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.wgsl
index 85f5ac4..b5318dd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/379cc5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureNumLayers_379cc5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_379cc5();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl
index dcf9509..14a1de5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_37bc8a();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl
index 80f1dbf..c38c0b1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_37bc8a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_37bc8a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl
index 80f1dbf..c38c0b1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_37bc8a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_37bc8a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl
index 2042788..4e52d06 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.spvasm
index 5c98ac1..c95e619 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_37bc8a "textureNumLayers_37bc8a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_37bc8a = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.wgsl
index fb4564b..315be45 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/37bc8a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureNumLayers_37bc8a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_37bc8a();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl
index c366fd9..38d342b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_380a60();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.dxc.hlsl
index d026298..e62e95f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_380a60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_380a60()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.fxc.hlsl
index d026298..e62e95f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_380a60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_380a60()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.glsl
index 4761efc..7457755 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_380a60() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_380a60() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.spvasm
index ef0f22c..0a97473 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_380a60 "textureNumLayers_380a60"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_380a60 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.wgsl
index b5fd719..14d39e5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/380a60.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureNumLayers_380a60() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_380a60();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl
index 91dd409..f7125dc 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3ad143();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl
index 338ce7c..dd27028 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3ad143() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3ad143()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl
index 338ce7c..dd27028 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3ad143() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3ad143()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl
index f3cb564..38eacba 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.spvasm
index d2f7022..18ddc8d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3ad143 "textureNumLayers_3ad143"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_3ad143 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.wgsl
index 102fd4e..3856f83 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3ad143.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureNumLayers_3ad143() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3ad143();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl
index 13bb05f..c722445 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3eff89();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl
index 08044ea..9304231 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3eff89() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3eff89()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl
index 08044ea..9304231 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3eff89() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3eff89()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl
index ffd9625..e31146d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.spvasm
index 006fb7e..d1a63b0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3eff89 "textureNumLayers_3eff89"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_3eff89 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.wgsl
index b5d30c2..91c3d68 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/3eff89.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureNumLayers_3eff89() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3eff89();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl
index 74c379c..a38fcfa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<bgra8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_485774();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.dxc.hlsl
index 8154272..f88b5d2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_485774() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_485774()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.fxc.hlsl
index 8154272..f88b5d2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_485774() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_485774()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl
index a69e478..0d85cfd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.spvasm
index f43cdb9..0cc084e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_485774 "textureNumLayers_485774"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_485774 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.wgsl
index e575a14..693be19 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/485774.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureNumLayers_485774() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_485774();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
index 99a67f8..b575761 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureNumLayers(texture: texture_depth_cube_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_48ef47();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
index a56b2f0..202b00c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_48ef47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_48ef47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
index a56b2f0..202b00c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_48ef47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_48ef47()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm
index ca80f4b..0488cd2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_48ef47 "textureNumLayers_48ef47"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureNumLayers_48ef47 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl
index bbbf7c5..bc4a10c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/48ef47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureNumLayers_48ef47() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_48ef47();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl
index ed97e7b..35f429d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4adaad();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl
index 245b9ba..6ebf43c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_4adaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4adaad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl
index 245b9ba..6ebf43c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_4adaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4adaad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl
index bed382c..26eb05e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.spvasm
index f7ca01e..1aef1cb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_4adaad "textureNumLayers_4adaad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_4adaad = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.wgsl
index cf051c2..b153e1e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4adaad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureNumLayers_4adaad() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4adaad();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl
index fc8f0dc..6d1ad87 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4c4333();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
index e7fe8df..73df4c2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_4c4333() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4c4333()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
index e7fe8df..73df4c2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_4c4333() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4c4333()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl
index 9241a50..6fdab34 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.spvasm
index 2a38201..66d24b3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_4c4333 "textureNumLayers_4c4333"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_4c4333 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.wgsl
index 5cd86fd..620baa4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/4c4333.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureNumLayers_4c4333() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4c4333();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl
index 0ae139e..be24eb5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_520086();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.dxc.hlsl
index 8750d93..6aab36a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_520086() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_520086()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.fxc.hlsl
index 8750d93..6aab36a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_520086() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_520086()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl
index c8a0a62..5bc3549 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.spvasm
index db5221e..4b79f94 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_520086 "textureNumLayers_520086"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_520086 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.wgsl
index b5fb314..2778ab0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/520086.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureNumLayers_520086() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_520086();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl
index 0e4cdae..e1e9e92 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_52dfc5();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl
index 9b5e67d..2a76482 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_52dfc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_52dfc5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl
index 9b5e67d..2a76482 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_52dfc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_52dfc5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl
index fd58ae8..d0ba344 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.spvasm
index a979bc2..2edae7c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_52dfc5 "textureNumLayers_52dfc5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_52dfc5 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.wgsl
index f4b6e11..b7ba398 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/52dfc5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureNumLayers_52dfc5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_52dfc5();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl
index d3ad10d..6358d23 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_54a654();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.dxc.hlsl
index a020cd6..732a5b6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_54a654() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_54a654()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.fxc.hlsl
index a020cd6..732a5b6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_54a654() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_54a654()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.glsl
index 34d05c4..2e7ee93 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_54a654() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_54a654() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.spvasm
index 8293f5c..0ddac80 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_54a654 "textureNumLayers_54a654"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_54a654 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.wgsl
index f8759ea..5710228 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/54a654.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureNumLayers_54a654() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_54a654();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl
index 0d29096..499a91c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_555f67();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.dxc.hlsl
index 0560d50..dc1f2a0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_555f67() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_555f67()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.fxc.hlsl
index 0560d50..dc1f2a0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_555f67() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_555f67()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl
index a95edcb..e2f1b6e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.spvasm
index f417c87..ae11cde 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_555f67 "textureNumLayers_555f67"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_555f67 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.wgsl
index f3903fc..f32ce4f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/555f67.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureNumLayers_555f67() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_555f67();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl
index 8f070cb..6a651ce 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r8unorm, read>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59cc27();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl
index eeeea33..dd02577 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_59cc27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59cc27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl
index eeeea33..dd02577 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_59cc27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59cc27()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.spvasm
index 692d1ae..52280a5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_59cc27 "textureNumLayers_59cc27"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_59cc27 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.wgsl
index fc588d7..7527e60 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59cc27.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureNumLayers_59cc27() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59cc27();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl
index 819a37f..a685f69 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59eb57();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
index 5a72acf..1148161 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_59eb57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59eb57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
index 5a72acf..1148161 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_59eb57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59eb57()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl
index 6f897ff..d4f3682 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.spvasm
index b93e056..c37bef0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_59eb57 "textureNumLayers_59eb57"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_59eb57 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.wgsl
index 4099328..2792c5f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/59eb57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureNumLayers_59eb57() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59eb57();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl
index d326231..8024317 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5ee8f2();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl
index 817b632..c8d4901 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_5ee8f2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5ee8f2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl
index 817b632..c8d4901 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_5ee8f2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5ee8f2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.glsl
index 93a8ee7..e3ab78c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_5ee8f2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_5ee8f2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.spvasm
index 24c73af..09e6574 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_5ee8f2 "textureNumLayers_5ee8f2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_5ee8f2 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.wgsl
index cdd3370..b43d350 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5ee8f2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureNumLayers_5ee8f2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5ee8f2();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl
index 2c69e00..d053a57 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5f20d1();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl
index 84b141e..0256d7f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_5f20d1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5f20d1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl
index 84b141e..0256d7f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_5f20d1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5f20d1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl
index e7571e5..a88f95c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.spvasm
index e8d9705..5bc8216 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_5f20d1 "textureNumLayers_5f20d1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_5f20d1 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.wgsl
index 94a4b71..141a271 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/5f20d1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureNumLayers_5f20d1() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5f20d1();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl
index aa3130e..b1c74ab 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_61bd23();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
index 0bbe67b..2f2c483 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_61bd23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_61bd23()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
index 0bbe67b..2f2c483 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_61bd23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_61bd23()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl
index 0247ac3..3d2c75d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.spvasm
index b789129..e4acbf0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_61bd23 "textureNumLayers_61bd23"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_61bd23 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.wgsl
index 35fa0d6..8fc3a03 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/61bd23.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureNumLayers_61bd23() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_61bd23();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl
index 151823c..2907965 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_622aa2();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl
index 61ba36f..9fe3827 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_622aa2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_622aa2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl
index 61ba36f..9fe3827 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_622aa2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_622aa2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.spvasm
index 623de33..0766b19 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_622aa2 "textureNumLayers_622aa2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_622aa2 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.wgsl
index d5ad8e6..3b29b97 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/622aa2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureNumLayers_622aa2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_622aa2();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
index 36d4bd9..5786afa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureNumLayers(texture: texture_cube_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6b4321();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
index c0bc1fe..fc83d3c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_6b4321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6b4321()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
index c0bc1fe..fc83d3c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_6b4321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6b4321()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm
index eac0a0b..d6a81e5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_6b4321 "textureNumLayers_6b4321"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -78,7 +78,7 @@
 %textureNumLayers_6b4321 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl
index 0e4560e..cf4df69 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6b4321.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureNumLayers_6b4321() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6b4321();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl
index 1b1d919..6d03a0f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6da0eb();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl
index a9df18c..0b38b3a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_6da0eb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6da0eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl
index a9df18c..0b38b3a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_6da0eb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6da0eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.glsl
index 5817dc0..80d67e1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_6da0eb() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_6da0eb() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.spvasm
index 24fd607..51b3023 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_6da0eb "textureNumLayers_6da0eb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_6da0eb = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.wgsl
index 003de40..1d2ee12 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/6da0eb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureNumLayers_6da0eb() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6da0eb();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl
index f57828f..e09cefa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureNumLayers(texture: texture_2d_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_77be7b();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
index 73c0769..95f5a83 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_77be7b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_77be7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
index 73c0769..95f5a83 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_77be7b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_77be7b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.glsl
index ddffc44..f522ea6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uint textureNumLayers_77be7b() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uint textureNumLayers_77be7b() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.spvasm
index 8e0cdb2..5de3196 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_77be7b "textureNumLayers_77be7b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureNumLayers_77be7b = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.wgsl
index 5bcffcd..fa6efca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/77be7b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureNumLayers_77be7b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_77be7b();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl
index a6bbe3f..49e24a5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7895f4();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl
index 72ed72e..867a36f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_7895f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7895f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl
index 72ed72e..867a36f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_7895f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7895f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl
index 4a13a60..779febc 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.spvasm
index 8d1d706..249fcae 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_7895f4 "textureNumLayers_7895f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_7895f4 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.wgsl
index a9afb4b..35daf5c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7895f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureNumLayers_7895f4() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7895f4();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl
index 7567648..2a0c59a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7f28cf();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
index 0adf1e3..9eb34fb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_7f28cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7f28cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
index 0adf1e3..9eb34fb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_7f28cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7f28cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.spvasm
index 76bb90a..4ffc0f4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_7f28cf "textureNumLayers_7f28cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_7f28cf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.wgsl
index b75e23f..f9de0d5 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/7f28cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureNumLayers_7f28cf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7f28cf();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl
index 03c02cc..71f6f74 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r8unorm, write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8356f7();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl
index 9fbb117..0e5c6a4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8356f7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8356f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl
index 9fbb117..0e5c6a4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8356f7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8356f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.spvasm
index 3013641..2e4a001 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8356f7 "textureNumLayers_8356f7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_8356f7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.wgsl
index 494fd43..6709ac0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8356f7.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, write>;
 
 fn textureNumLayers_8356f7() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8356f7();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl
index 509eaa4..8c56c61 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_878dea();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
index bfe017b..b153ad2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_878dea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_878dea()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
index bfe017b..b153ad2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_878dea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_878dea()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl
index d404ac3..85468cd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.spvasm
index 97e2147..8cb01e4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_878dea "textureNumLayers_878dea"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_878dea = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.wgsl
index 203656a..229f3fa 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/878dea.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureNumLayers_878dea() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_878dea();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl
index 00ad10e..60c8631 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_87faad();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
index f86cf53..19e90e2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_87faad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_87faad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
index f86cf53..19e90e2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_87faad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_87faad()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl
index 8c07946..801ec18 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.spvasm
index dab25e3..a8a9bad 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_87faad "textureNumLayers_87faad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_87faad = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.wgsl
index f53f110..33ac6af 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/87faad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureNumLayers_87faad() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_87faad();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl
index 76cebdc..a4750bb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureNumLayers(texture: texture_2d_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8ac32a();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
index 2fdda86..95d8e38 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_8ac32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8ac32a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
index 2fdda86..95d8e38 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_8ac32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8ac32a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.glsl
index 5dc07b7..91acce8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uint textureNumLayers_8ac32a() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uint textureNumLayers_8ac32a() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.spvasm
index 4a8d637..bac4031 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8ac32a "textureNumLayers_8ac32a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureNumLayers_8ac32a = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.wgsl
index 95272b4..6ebbbb6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8ac32a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureNumLayers_8ac32a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8ac32a();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl
index 7bcc7f2..122bca0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8bd987();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
index 0cc0fa9..91c9d59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8bd987() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8bd987()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
index 0cc0fa9..91c9d59 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8bd987() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8bd987()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl
index b714c5a..416376a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.spvasm
index dee20e3..bbc8c90 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8bd987 "textureNumLayers_8bd987"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_8bd987 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.wgsl
index 0fda35d..737787c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8bd987.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureNumLayers_8bd987() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8bd987();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl
index 6e877a6..a82bcad 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8dbf23();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
index d325e01..7b957a1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8dbf23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8dbf23()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
index d325e01..7b957a1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8dbf23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8dbf23()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl
index 43d543e..8f43d97 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.spvasm
index 6b9082c..4425af0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8dbf23 "textureNumLayers_8dbf23"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_8dbf23 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.wgsl
index 2e4623e..1302392 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8dbf23.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureNumLayers_8dbf23() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8dbf23();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl
index 99cef53..4b781a96 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8e1bd0();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl
index 82bbd33..7e78bdb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8e1bd0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8e1bd0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl
index 82bbd33..7e78bdb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8e1bd0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8e1bd0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl
index 5d1cf15..0bb0cca 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.spvasm
index 1b6d5e2..c553813 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8e1bd0 "textureNumLayers_8e1bd0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_8e1bd0 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.wgsl
index c916ebe..0a82ebd 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/8e1bd0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureNumLayers_8e1bd0() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8e1bd0();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl
index c0ad829..adcb962 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_90b8cc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl
index 8fde595..327f8eb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_90b8cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_90b8cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl
index 8fde595..327f8eb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_90b8cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_90b8cc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.spvasm
index 3963b7f..7c9f90a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_90b8cc "textureNumLayers_90b8cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_90b8cc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.wgsl
index 3ee9cf2..8d7522c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/90b8cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureNumLayers_90b8cc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_90b8cc();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl
index 0e39da5..3da37d2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9695c6();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
index 75fc105..879a1b9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_9695c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9695c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
index 75fc105..879a1b9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_9695c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9695c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl
index fa77999..4f34cb9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.spvasm
index c797165..1ec8e1f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_9695c6 "textureNumLayers_9695c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_9695c6 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.wgsl
index 50dc038..f8a421a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9695c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureNumLayers_9695c6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9695c6();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl
index 87b2b8f..7a38ac9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_98a9cf();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
index 2abf340..7eb3c67 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_98a9cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_98a9cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
index 2abf340..7eb3c67 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_98a9cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_98a9cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl
index fec27d6..1e27aa7 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.spvasm
index 47a2552..c032c73 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_98a9cf "textureNumLayers_98a9cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_98a9cf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.wgsl
index 5c0b35d..da16b2b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/98a9cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureNumLayers_98a9cf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_98a9cf();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl
index 3394443..1e3e08b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9c60e3();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl
index 46d5582..400111d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_9c60e3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9c60e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl
index 46d5582..400111d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_9c60e3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9c60e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl
index efea934..4b81f3a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.spvasm
index 6f181cb..5a6fdbb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_9c60e3 "textureNumLayers_9c60e3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_9c60e3 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.wgsl
index 6e7dfb0..f9ed5c9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/9c60e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureNumLayers_9c60e3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9c60e3();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl
index 7b8f91a..b5bfd33 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<bgra8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a54655();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.dxc.hlsl
index 53ccb63..6f6bd6a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_a54655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a54655()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.fxc.hlsl
index 53ccb63..6f6bd6a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_a54655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a54655()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.glsl
index ff44163..5d0ee4f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_a54655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_a54655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.spvasm
index 80cbc43..82c3390 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_a54655 "textureNumLayers_a54655"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_a54655 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.wgsl
index b0ea678..ed0e8bf 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a54655.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureNumLayers_a54655() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a54655();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl
index 21e38af..f400fbb 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureNumLayers(texture: texture_depth_2d_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a9d3f5();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
index d0a8673..e94a5be 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_a9d3f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a9d3f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
index d0a8673..e94a5be 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_a9d3f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a9d3f5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.glsl
index fb69131..1bfda4e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_a9d3f5() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_a9d3f5() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.spvasm
index 7ef606e..d6afbd0 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_a9d3f5 "textureNumLayers_a9d3f5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureNumLayers_a9d3f5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.wgsl
index 655b89d..18de07a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/a9d3f5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureNumLayers_a9d3f5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a9d3f5();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl
index e8cda4a..f700e6f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r8unorm, read_write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_aac630();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.dxc.hlsl
index 5657383..665bc09 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_aac630() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_aac630()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.fxc.hlsl
index 5657383..665bc09 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_aac630() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_aac630()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.spvasm
index c46e289..1caf76e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_aac630 "textureNumLayers_aac630"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_aac630 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.wgsl
index fbfb38d..5aecc1f 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/aac630.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureNumLayers_aac630() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_aac630();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl
index 01d887f..c6ba9a1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_bf2f76();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl
index dcb4d99..3a7436e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_bf2f76() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_bf2f76()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl
index dcb4d99..3a7436e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_bf2f76() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_bf2f76()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.spvasm
index 95f5431..bc30485 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_bf2f76 "textureNumLayers_bf2f76"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -78,7 +78,7 @@
 %textureNumLayers_bf2f76 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.wgsl
index 33eb69a..07d965b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/bf2f76.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureNumLayers_bf2f76() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_bf2f76();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
index 5932ec0..6579aa8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureNumLayers(texture: texture_cube_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_c1eca9();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
index 4d1be12..6dc8c3a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_c1eca9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_c1eca9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
index 4d1be12..6dc8c3a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_c1eca9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_c1eca9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm
index 22bb016..a7f3ed2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_c1eca9 "textureNumLayers_c1eca9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureNumLayers_c1eca9 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl
index dabfbbf..e5193b4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/c1eca9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureNumLayers_c1eca9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_c1eca9();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl
index d75825a..3d4df1d 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3e21f();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl
index 8fc18b4..5df523a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_d3e21f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3e21f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl
index 8fc18b4..5df523a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_d3e21f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3e21f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl
index 28bc3ac..0dd91e3 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.spvasm
index 8ece63f..0302806 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_d3e21f "textureNumLayers_d3e21f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_d3e21f = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.wgsl
index d2f5b8c..01c111a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3e21f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureNumLayers_d3e21f() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3e21f();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl
index c3b5347..e7d01b8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3f655();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl
index fbad3b8..4fe7b29 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d3f655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3f655()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl
index fbad3b8..4fe7b29 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d3f655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3f655()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.glsl
index 9791bfa..5359a6c 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_d3f655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_d3f655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.spvasm
index a38d6fa..41a4330 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_d3f655 "textureNumLayers_d3f655"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_d3f655 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.wgsl
index 4913cef..02f369e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d3f655.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureNumLayers_d3f655() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3f655();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl
index 0f9ab90..d9412c1 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d75a0b();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
index 42bb727..4cbc0b8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d75a0b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d75a0b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
index 42bb727..4cbc0b8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d75a0b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d75a0b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl
index 5a7bbac..527dbee 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.spvasm
index 596e31a..4f33ee9 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_d75a0b "textureNumLayers_d75a0b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_d75a0b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.wgsl
index fc173cd..0837cf2 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/d75a0b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureNumLayers_d75a0b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d75a0b();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl
index 1f0c7fa..1abfc02 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_de8087();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
index e42eac7..47eaf82 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_de8087() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_de8087()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
index e42eac7..47eaf82 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_de8087() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_de8087()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl
index 636846a..576d62e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.spvasm
index 8036844..805e29b 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_de8087 "textureNumLayers_de8087"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_de8087 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.wgsl
index 68a8a2d..8c43594 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/de8087.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureNumLayers_de8087() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_de8087();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl
index e1cee8e..282a707 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_e47aac();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl
index 0d72355..400e614 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_e47aac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_e47aac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl
index 0d72355..400e614 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_e47aac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_e47aac()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.glsl
index 090ecf6..74581ba 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_e47aac() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_e47aac() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.spvasm
index 34d7e4e..3595dc4 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_e47aac "textureNumLayers_e47aac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_e47aac = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.wgsl
index 6390e6e..0e17359 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/e47aac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureNumLayers_e47aac() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_e47aac();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl
index c1ee3ac..39fc4b8 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_f1783f();
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl
index f3333f3..d7b5d6a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_f1783f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_f1783f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl
index f3333f3..d7b5d6a 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_f1783f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_f1783f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl
index 7e04caf..b6efb5e 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.spvasm
index d37c162..d5f4859 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_f1783f "textureNumLayers_f1783f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_f1783f = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.wgsl
index 3270565..d8706d6 100644
--- a/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLayers/f1783f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureNumLayers_f1783f() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_f1783f();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl
index 1b8e816..d7cdd63 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureNumLevels(texture: texture_2d_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_181090();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl
index 84c5848..46e12aa 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_181090() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_181090()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl
index 84c5848..46e12aa 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_181090() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_181090()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.glsl
index 51ff0a5..8f43eb8 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_181090() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_181090() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.spvasm
index 8b3e9ec..06cb75a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_181090 "textureNumLevels_181090"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_181090 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.wgsl
index 83923a9..dcbddc8 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/181090.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureNumLevels_181090() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_181090();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl
index d8e7661..a96f345 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureNumLevels(texture: texture_2d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a3fa9();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
index 55e45e6..dfdfccc 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a3fa9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a3fa9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
index 55e45e6..dfdfccc 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a3fa9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a3fa9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.glsl
index 1f7e6b6..a4457c9 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a3fa9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a3fa9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.spvasm
index 8150435..065764a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_1a3fa9 "textureNumLevels_1a3fa9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_1a3fa9 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.wgsl
index 7c0e012..16a6b4a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a3fa9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureNumLevels_1a3fa9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a3fa9();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl
index f7b1779..5afd7f6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureNumLevels(texture: texture_1d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a7fc3();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
index 1cd46ba..458f5f9 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a7fc3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a7fc3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
index 1cd46ba..458f5f9 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a7fc3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a7fc3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl
index 47919e8..03939a1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a7fc3() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a7fc3() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.spvasm
index 0d43d2d..cfdcd2a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_1a7fc3 "textureNumLevels_1a7fc3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_1a7fc3 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.wgsl
index 4ed75a1..1858d53 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/1a7fc3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureNumLevels_1a7fc3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a7fc3();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl
index 5dbb0db..1cbfebb 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureNumLevels(texture: texture_cube<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2267d8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
index f2b6dfe..bceb88e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2267d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2267d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
index f2b6dfe..bceb88e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2267d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2267d8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.glsl
index fd2ed97..127d3b8 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2267d8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2267d8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.spvasm
index a7be62b..ba4d966 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_2267d8 "textureNumLevels_2267d8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_2267d8 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.wgsl
index 44f7448..4ef62c2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2267d8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureNumLevels_2267d8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2267d8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl
index ab5ffb0..6414f1d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureNumLevels(texture: texture_2d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_24b2c6();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
index 52d25d5..4049849 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_24b2c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_24b2c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
index 52d25d5..4049849 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_24b2c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_24b2c6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.glsl
index 2784899..c477752 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_24b2c6() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_24b2c6() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.spvasm
index 5a0794f..61c56d2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_24b2c6 "textureNumLevels_24b2c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_24b2c6 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.wgsl
index bdf9ded..45b3714 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/24b2c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureNumLevels_24b2c6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_24b2c6();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl
index 29f4e5f..f4c8b6e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureNumLevels(texture: texture_depth_cube_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2bea6c();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
index cfb7710..21e4b33 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_2bea6c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2bea6c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
index cfb7710..21e4b33 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_2bea6c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2bea6c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl
index baa3b79..e408dba 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2bea6c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2bea6c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.spvasm
index e5d7a26..e45b884 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_2bea6c "textureNumLevels_2bea6c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_2bea6c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.wgsl
index 8935c37..bcb1d67 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2bea6c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureNumLevels_2bea6c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2bea6c();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl
index 63c4c6f..007e23c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureNumLevels(texture: texture_cube<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2df1ab();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
index f365adc..7d4f840 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2df1ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2df1ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
index f365adc..7d4f840 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2df1ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2df1ab()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.glsl
index 9a73e80..916eb9d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2df1ab() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2df1ab() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.spvasm
index 55c65d4..b518206 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_2df1ab "textureNumLevels_2df1ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_2df1ab = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.wgsl
index e4b631d..d069c2c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/2df1ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureNumLevels_2df1ab() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2df1ab();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl
index 205fc86..db3c07e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureNumLevels(texture: texture_2d_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_46dbd8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
index 4c31b3d..ddf54d1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_46dbd8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_46dbd8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
index 4c31b3d..ddf54d1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_46dbd8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_46dbd8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.glsl
index 0dac9e3..f1644b2 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_46dbd8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_46dbd8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.spvasm
index 8703eec..bf46999 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_46dbd8 "textureNumLevels_46dbd8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_46dbd8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.wgsl
index 7079803..9825e50 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/46dbd8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureNumLevels_46dbd8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_46dbd8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl
index e19484c..61d1751 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureNumLevels(texture: texture_3d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_60d9b8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
index 6a13dbd..c22a41c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_60d9b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_60d9b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
index 6a13dbd..c22a41c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_60d9b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_60d9b8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.glsl
index d6c93b2..17df031 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_60d9b8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_60d9b8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.spvasm
index 8c38d62..9d6a6c1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_60d9b8 "textureNumLevels_60d9b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_60d9b8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.wgsl
index 6de885a..24b752a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/60d9b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureNumLevels_60d9b8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_60d9b8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl
index 74e603c..007bc0f 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureNumLevels(texture: texture_cube_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_903920();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl
index 00f025d..3e19608 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_903920() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_903920()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl
index 00f025d..3e19608 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_903920() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_903920()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl
index b34a7ae..6e7e2be 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_903920() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_903920() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.spvasm
index c06660a..517b0b0 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_903920 "textureNumLevels_903920"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureNumLevels_903920 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.wgsl
index 6169b98..30213fb 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/903920.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureNumLevels_903920() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_903920();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl
index 01e0fce..4d2bb1c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureNumLevels(texture: texture_3d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_9a1a65();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
index 345e180..0bb8f40 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_9a1a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_9a1a65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
index 345e180..0bb8f40 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_9a1a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_9a1a65()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.glsl
index e8c1e08..2903ada 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_9a1a65() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_9a1a65() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.spvasm
index 3ae6fbd..2731c9b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_9a1a65 "textureNumLevels_9a1a65"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_9a1a65 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.wgsl
index 6b509fd..fb08e7e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/9a1a65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureNumLevels_9a1a65() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_9a1a65();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl
index d12357b..48f4d60 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureNumLevels(texture: texture_2d_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_adc783();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
index 77ac28a..ac3a920 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_adc783() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_adc783()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
index 77ac28a..ac3a920 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_adc783() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_adc783()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.glsl
index 7e4d2ab..f7f2b85 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_adc783() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_adc783() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.spvasm
index 6fb2ecd..5d55871 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_adc783 "textureNumLevels_adc783"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_adc783 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.wgsl
index 6203849..3b52218 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/adc783.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureNumLevels_adc783() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_adc783();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl
index 163f94c..d7e1b60 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureNumLevels(texture: texture_depth_2d_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ae911c();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
index 6f7f680..a52c06c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_ae911c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ae911c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
index 6f7f680..a52c06c 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_ae911c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ae911c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.glsl
index 3eb5f71..4b48a56 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ae911c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ae911c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.spvasm
index 6d44883..873784e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_ae911c "textureNumLevels_ae911c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_ae911c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.wgsl
index b6a6309..71068af 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ae911c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureNumLevels_ae911c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ae911c();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl
index b7f8157..85f5cc1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureNumLevels(texture: texture_cube<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c386c8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
index 242ef03..e86da7e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c386c8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c386c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
index 242ef03..e86da7e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c386c8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c386c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.glsl
index df385f5..8cc5bba 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c386c8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c386c8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.spvasm
index 8827c75..18471ec 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_c386c8 "textureNumLevels_c386c8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_c386c8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.wgsl
index 8a45378..8b52a44 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c386c8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureNumLevels_c386c8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c386c8();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl
index a43950f..b5bb7bd 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureNumLevels(texture: texture_1d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c399f9();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
index dbecefd..693f96a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c399f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c399f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
index dbecefd..693f96a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c399f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c399f9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl
index 0365208..1b10371 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c399f9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c399f9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.spvasm
index 0c0471d..693780b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_c399f9 "textureNumLevels_c399f9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_c399f9 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.wgsl
index 8728c64..29ae814 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c399f9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureNumLevels_c399f9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c399f9();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl
index 4a34300..44280b4 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureNumLevels(texture: texture_depth_cube) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c8c25c();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
index 9089946..0ae28ef 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint textureNumLevels_c8c25c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c8c25c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
index 9089946..0ae28ef 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint textureNumLevels_c8c25c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c8c25c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.glsl
index 1de7296..55f99ac 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c8c25c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c8c25c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.spvasm
index d24e8ed..66da4db 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_c8c25c "textureNumLevels_c8c25c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_c8c25c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.wgsl
index ba1842f..4fc5e3e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/c8c25c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureNumLevels_c8c25c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c8c25c();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl
index 868c15e..f9e5c95 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureNumLevels(texture: texture_depth_2d) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d63126();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
index 9e9b8d4..5690a24 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint textureNumLevels_d63126() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d63126()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
index 9e9b8d4..5690a24 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint textureNumLevels_d63126() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d63126()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.glsl
index 9bde1c2..891c84d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d63126() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d63126() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.spvasm
index 0db67f4..85ada68 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_d63126 "textureNumLevels_d63126"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_d63126 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.wgsl
index a289a9d..864e89e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d63126.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureNumLevels_d63126() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d63126();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl
index 44d41bd..0909779 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureNumLevels(texture: texture_cube_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d8f73b();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
index b3a5217..985bfd5 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_d8f73b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d8f73b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
index b3a5217..985bfd5 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_d8f73b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d8f73b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl
index f921540..89fcda7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d8f73b() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d8f73b() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.spvasm
index 9310a46..168f5dc 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_d8f73b "textureNumLevels_d8f73b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_d8f73b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.wgsl
index 32c4c01..6713f6e 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/d8f73b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureNumLevels_d8f73b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d8f73b();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl
index 87cd9a3..f51f6da 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureNumLevels(texture: texture_3d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ef7944();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
index f1e90fa..faaaa23 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_ef7944() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ef7944()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
index f1e90fa..faaaa23 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_ef7944() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ef7944()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.glsl
index 14a31f0..adbbc4f 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ef7944() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ef7944() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.spvasm
index e082e5f..0377729 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_ef7944 "textureNumLevels_ef7944"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_ef7944 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.wgsl
index f8a113f..debb74b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/ef7944.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureNumLevels_ef7944() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ef7944();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl
index 7828024..d869f79 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureNumLevels(texture: texture_2d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_efd6df();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
index b054d4c..3a0f0f7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_efd6df() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_efd6df()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
index b054d4c..3a0f0f7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_efd6df() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_efd6df()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.glsl
index e8228b0..a1cfc24 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_efd6df() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_efd6df() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.spvasm
index 4cd2264..a9a9c69 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_efd6df "textureNumLevels_efd6df"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_efd6df = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.wgsl
index 7cd161d..5ba9858 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/efd6df.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureNumLevels_efd6df() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_efd6df();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl
index 1b8b475..11d04d7 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureNumLevels(texture: texture_1d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_f742c0();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
index 3a40517..bf14311 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_f742c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_f742c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
index 3a40517..bf14311 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_f742c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_f742c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl
index e691671..48a2c6d 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_f742c0() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_f742c0() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.spvasm
index cf91e5c..403a672 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_f742c0 "textureNumLevels_f742c0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureNumLevels_f742c0 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.wgsl
index 520a5b5..a516fe1 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/f742c0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureNumLevels_f742c0() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_f742c0();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl
index 300ff8d..3269fa6 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureNumLevels(texture: texture_cube_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_fe2171();
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
index 79119ee..5066cba 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_fe2171() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_fe2171()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
index 79119ee..5066cba 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_fe2171() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_fe2171()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl
index cc37a77..1e88194 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_fe2171() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_fe2171() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.spvasm
index 4063e51..c02ec1a 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_fe2171 "textureNumLevels_fe2171"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_fe2171 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.wgsl
index aef5d42..45c301b 100644
--- a/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumLevels/fe2171.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureNumLevels_fe2171() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_fe2171();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl
index a9d5987..ce8c5a6 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureNumSamples(texture: texture_multisampled_2d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_50f399();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
index afb2598..ff5b642 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_50f399() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_50f399()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
index afb2598..ff5b642 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_50f399() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_50f399()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.glsl
index 96364f3..259a84e 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_50f399() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_50f399() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.spvasm
index 4748307..753f997 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_50f399 "textureNumSamples_50f399"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumSamples_50f399 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySamples %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.wgsl
index f221ecc..8cc3c46 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/50f399.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureNumSamples_50f399() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_50f399();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl
index 0f822bd..b7313e1 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureNumSamples(texture: texture_multisampled_2d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_c1a777();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
index 0b259e0..372bd59 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_c1a777() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_c1a777()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
index 0b259e0..372bd59 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_c1a777() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_c1a777()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.glsl
index 1270eda..7a8014a 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_c1a777() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_c1a777() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.spvasm
index 07a2e90..82f809e 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_c1a777 "textureNumSamples_c1a777"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumSamples_c1a777 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySamples %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.wgsl
index fee43aa..92ddcf1 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/c1a777.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureNumSamples_c1a777() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_c1a777();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl
index 4cb1efb..6e3da9a 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureNumSamples(texture: texture_multisampled_2d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_dbb799();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
index db6540c..65089e6 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_dbb799() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_dbb799()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
index db6540c..65089e6 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_dbb799() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_dbb799()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.glsl
index 8bca5f1..c1a58d2 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_dbb799() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_dbb799() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.spvasm
index 73b5398..563cfa0 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_dbb799 "textureNumSamples_dbb799"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumSamples_dbb799 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySamples %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.wgsl
index 93c3787..8433491 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/dbb799.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureNumSamples_dbb799() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_dbb799();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl
index 83e976d..2245293 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_ecd321();
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
index 87126da..1e9b7f9 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_ecd321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_ecd321()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
index 87126da..1e9b7f9 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_ecd321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_ecd321()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.glsl
index 4d6f57d..42c6ae9 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_ecd321() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_ecd321() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.spvasm
index 0b0e75e..45b6346 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_ecd321 "textureNumSamples_ecd321"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumSamples_ecd321 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySamples %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.wgsl
index 0daf4f5..4788cfd 100644
--- a/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureNumSamples/ecd321.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureNumSamples_ecd321() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_ecd321();
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl
index 73c48e9..c5a1bfb 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_0dff6c();
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl
index d12d48f..1eb535b 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_0dff6c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl
index d12d48f..1eb535b 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_0dff6c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl
index ea98135..2bcc9ef 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSample_0dff6c() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_0dff6c();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm
index 9d6ff9f..b54dcfc 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_0dff6c "textureSample_0dff6c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %23 = OpConstantComposite %v2float %float_1 %float_1
@@ -53,8 +53,8 @@
 %textureSample_0dff6c = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %30
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %15 = OpImageSampleImplicitLod %v4float %20 %23 ConstOffset %27
          %14 = OpCompositeExtract %float %15 0
diff --git a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl
index 13e3071..6a78428 100644
--- a/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/0dff6c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_0dff6c();
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl
index 1a8ef38..7138203 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_17e988();
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl
index 1eb43af..df9cf21 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_17e988()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl
index 1eb43af..df9cf21 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_17e988()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl
index 46fc8c1..8d3f897 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_17e988() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_17e988();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm
index bbe099d..d2a3992 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_17e988 "textureSample_17e988"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -54,8 +54,8 @@
 %textureSample_17e988 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %34
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl
index 463cdcb..908a803 100644
--- a/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/17e988.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_17e988();
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl
index 6a9bf68..6fefa87 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_193203();
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl
index 1245291..7060d39 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_193203()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl
index 1245291..7060d39 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_193203()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl
index a8aa73f..401b65a 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_193203() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_193203();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm
index bbcd944..0d315ea 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_193203 "textureSample_193203"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -55,8 +55,8 @@
 %textureSample_193203 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %36
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl
index 26fe5a8..8b398f0 100644
--- a/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/193203.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_193203();
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl
index 0e1d3f5..4fa790b 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_1a4e1b();
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
index e07563c..e0819f1 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_1a4e1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
index e07563c..e0819f1 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_1a4e1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl
index 0fcf2f5..e215bce 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSample_1a4e1b() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_1a4e1b();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm
index 585733b..d2f720f 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_1a4e1b "textureSample_1a4e1b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -51,8 +51,8 @@
 %textureSample_1a4e1b = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %33
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %25 = OpCompositeExtract %float %24 0
          %26 = OpCompositeExtract %float %24 1
diff --git a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl
index f15e986..a7bacc0 100644
--- a/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/1a4e1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_1a4e1b();
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl
index 0efc372..52ac6e6 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_2149ec();
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl
index 703a76e..0ffe25b 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_2149ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl
index 703a76e..0ffe25b 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_2149ec()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl
index 330be45..0c276f3 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSample_2149ec() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_2149ec();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm
index ac1a792..b28ac97 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_2149ec "textureSample_2149ec"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -53,8 +53,8 @@
 %textureSample_2149ec = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %29
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 ConstOffset %26
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl
index 65e157e..7fdbd1e 100644
--- a/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/2149ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_2149ec();
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl
index 6646c95..15ff38f 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_38bbb9();
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl
index 2e4d656..bd6e85c 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_38bbb9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl
index 2e4d656..bd6e85c 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_38bbb9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl
index b26583e..67ab240 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSample_38bbb9() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_38bbb9();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm
index bf06019..0aa7820 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_38bbb9 "textureSample_38bbb9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %23 = OpConstantComposite %v2float %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSample_38bbb9 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %26
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %15 = OpImageSampleImplicitLod %v4float %20 %23
          %14 = OpCompositeExtract %float %15 0
diff --git a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl
index 6538d9c..4b6c05b 100644
--- a/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/38bbb9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_38bbb9();
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl
index f40dcce..a24d8d1 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_3b50bd();
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl
index 236eb31..9a52228 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_3b50bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl
index 236eb31..9a52228 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_3b50bd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl
index b368313..19e3c25 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSample_3b50bd() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_3b50bd();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm
index b7ecb20..63751d5 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_3b50bd "textureSample_3b50bd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSample_3b50bd = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %25
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl
index 3f26d79..11af3c0 100644
--- a/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/3b50bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_3b50bd();
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl
index 014c021..d182add 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4703d0();
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl
index aee6ace..7853c46 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_4703d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl
index aee6ace..7853c46 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_4703d0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm
index aa13d71..a62f4f1 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_4703d0 "textureSample_4703d0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -55,8 +55,8 @@
 %textureSample_4703d0 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %37
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %25 = OpCompositeExtract %float %24 0
          %26 = OpCompositeExtract %float %24 1
diff --git a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl
index 592a63a..229ed6f 100644
--- a/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4703d0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4703d0();
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
index b6df889..56df22e 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4dd1bf();
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
index bfd02ad..084dd57 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_4dd1bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
index bfd02ad..084dd57 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_4dd1bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm
index d5cdacd..dc2607a 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_4dd1bf "textureSample_4dd1bf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -52,8 +52,8 @@
 %textureSample_4dd1bf = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl
index 08f0f31..42bfa62 100644
--- a/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/4dd1bf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4dd1bf();
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl
index 593678e..e6c2a16 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_51b514();
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl
index d2e66d8..b2c79ba 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_51b514()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl
index d2e66d8..b2c79ba 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_51b514()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl
index aa79d86..13bcd82 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSample_51b514() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_51b514();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm
index c608ba8..834f7ae 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_51b514 "textureSample_51b514"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v2float %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSample_51b514 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %25
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl
index 6b18b61..e093fb8 100644
--- a/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/51b514.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_51b514();
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl
index 219194b..b4563f7 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_60bf45();
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl
index 5111d04..a36d979 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_60bf45()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl
index 5111d04..a36d979 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_60bf45()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm
index ad213b7..f796503 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_60bf45 "textureSample_60bf45"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -54,8 +54,8 @@
 %textureSample_60bf45 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %35
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %25 = OpCompositeExtract %float %24 0
          %26 = OpCompositeExtract %float %24 1
diff --git a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl
index c57a6ec..b72dacb 100644
--- a/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/60bf45.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_60bf45();
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl
index 7078275..7e362b9 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6717ca();
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl
index 0056e32..b086733 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6717ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl
index 0056e32..b086733 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6717ca()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl
index 357e8e2..d90d562 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_6717ca() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_6717ca();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm
index fb9406e..2c88a65 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_6717ca "textureSample_6717ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -52,8 +52,8 @@
 %textureSample_6717ca = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl
index c1a8676..bda0251 100644
--- a/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/6717ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6717ca();
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl
index 17e1264..1552ba9 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6e64fb();
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.dxc.hlsl
index 65d5850..2ac50f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6e64fb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.fxc.hlsl
index 65d5850..2ac50f6 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6e64fb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.glsl
index dcab14d..75a701a 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSample_6e64fb() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_6e64fb();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.spvasm
index c4a6585..bf922bc 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_6e64fb "textureSample_6e64fb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %23 = OpConstantNull %v4float
@@ -48,8 +48,8 @@
 %textureSample_6e64fb = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %23
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %float_1
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.wgsl
index 5819866..8c8bfa7 100644
--- a/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/6e64fb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6e64fb();
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl
index 37728d3..2f9c31b 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7e9ffd();
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
index 59175b4..6e6c9e0 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7e9ffd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
index 59175b4..6e6c9e0 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7e9ffd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl
index 4c691a9..a6ceb56 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSample_7e9ffd() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_7e9ffd();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm
index 071dc83..8f1c8bd 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_7e9ffd "textureSample_7e9ffd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -52,8 +52,8 @@
 %textureSample_7e9ffd = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %33
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %25 = OpCompositeExtract %float %24 0
          %26 = OpCompositeExtract %float %24 1
diff --git a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl
index 8717545..af6a318 100644
--- a/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7e9ffd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7e9ffd();
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
index 1d7a607..a67d166 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7fd8cb();
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
index f66cad7..9028454 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7fd8cb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
index f66cad7..9028454 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7fd8cb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm
index c30e4d2..2707c1f 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_7fd8cb "textureSample_7fd8cb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %23 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -51,8 +51,8 @@
 %textureSample_7fd8cb = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %33
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl
index b2be612..41e360e 100644
--- a/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/7fd8cb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7fd8cb();
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl
index ca9dfbb..f09f182 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_85c4ba();
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl
index dd707b9..8470956 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_85c4ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl
index dd707b9..8470956 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_85c4ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl
index 37e788e..44bf96e 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSample_85c4ba() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_85c4ba();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm
index 7cd5557..9dad261 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_85c4ba "textureSample_85c4ba"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v2float %float_1 %float_1
@@ -53,8 +53,8 @@
 %textureSample_85c4ba = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %29
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 ConstOffset %26
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl
index e747726..cec5d81 100644
--- a/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/85c4ba.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_85c4ba();
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
index e74a5aa..f592f87 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_bc7477();
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl
index 741113f..0bde2dc 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_bc7477()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl
index 741113f..0bde2dc 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_bc7477()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm
index 4d19f91..6875a4f 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_bc7477 "textureSample_bc7477"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -51,8 +51,8 @@
 %textureSample_bc7477 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl
index ba450cb..2c306c1 100644
--- a/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/bc7477.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_bc7477();
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
index 5fa17cf..e4100ff 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_c2f4e8();
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
index 1dc8819..18bc6f5 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_c2f4e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
index 1dc8819..18bc6f5 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_c2f4e8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm
index 976ce74..173aea9 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_c2f4e8 "textureSample_c2f4e8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %23 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -52,8 +52,8 @@
 %textureSample_c2f4e8 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %33
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl
index ee8b88d..fd9e118 100644
--- a/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/c2f4e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_c2f4e8();
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl
index 7cc841b..43df496 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_d6b281();
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl
index aa8906e..74370cd 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_d6b281()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl
index aa8906e..74370cd 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_d6b281()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl
index 20cf05b..19b2d7f 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_d6b281() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_d6b281();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm
index 9dd3b37..61bd14c 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_d6b281 "textureSample_d6b281"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -51,8 +51,8 @@
 %textureSample_d6b281 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl
index 2beac0a..11aee1c 100644
--- a/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/d6b281.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_d6b281();
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl
index a0eaed1..aafb227 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_e53267();
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl
index c057bd0..2f22e54 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_e53267()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl
index c057bd0..2f22e54 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_e53267()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl
index a7a5fc2..b5c646b 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSample_e53267() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_e53267();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm
index 3d49105..071c97a 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_e53267 "textureSample_e53267"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSample_e53267 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %25
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl
index 21a6374..ff82ee8 100644
--- a/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/e53267.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_e53267();
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl
index dd19354..acc75f4 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSample(arg_0, arg_1, vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_ea7030();
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl
index 69c0827..df1910a 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_ea7030()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl
index 69c0827..df1910a 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_ea7030()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl
index 7581e85..a4117de 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSample_ea7030() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_ea7030();
 }
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm
index 6e17d75..49d9de4 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_ea7030 "textureSample_ea7030"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v4float = OpTypeVector %float 4
-         %19 = OpTypeSampledImage %3
+         %19 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %23 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSample_ea7030 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %26
-         %17 = OpLoad %7 %arg_1
-         %18 = OpLoad %3 %arg_0
+         %17 = OpLoad %10 %arg_1
+         %18 = OpLoad %7 %arg_0
          %20 = OpSampledImage %19 %18 %17
          %15 = OpImageSampleImplicitLod %v4float %20 %23
          %14 = OpCompositeExtract %float %15 0
diff --git a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl
index 47d6e4a..7459e91 100644
--- a/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSample/ea7030.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_ea7030();
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl
index 04b9cb2..6c7d40b 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_7c04e6();
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index 7b90ce3..aa5cdfd 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -29,6 +29,7 @@
 cbuffer cbuffer_ext_tex_params : register(b3, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -118,8 +119,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_7c04e6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index 7b90ce3..aa5cdfd 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -29,6 +29,7 @@
 cbuffer cbuffer_ext_tex_params : register(b3, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -118,8 +119,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_7c04e6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
index 893f2bc..1c882c1 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
@@ -64,6 +64,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -101,10 +105,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -182,6 +182,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -219,10 +223,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
index cc68394..ff325c9 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
@@ -46,11 +46,11 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %gammaCorrection "gammaCorrection"
                OpName %v "v"
                OpName %params "params"
@@ -129,14 +129,14 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %ExternalTextureParams 0 Offset 0
                OpMemberDecorate %ExternalTextureParams 1 Offset 4
                OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -184,13 +184,13 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %27 = OpTypeSampler
-%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27
-      %arg_1 = OpVariable %_ptr_UniformConstant_27 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
+         %30 = OpTypeSampler
+%_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30
+      %arg_1 = OpVariable %_ptr_UniformConstant_30 UniformConstant
          %31 = OpTypeFunction %v3float %v3float %GammaTransferParams
        %bool = OpTypeBool
      %v3bool = OpTypeVector %bool 3
@@ -198,7 +198,7 @@
          %51 = OpConstantNull %v3float
 %mat3v2float = OpTypeMatrix %v2float 3
 %ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float %mat3v2float %mat3v2float %v2float %v2float %v2float %v2float %v2uint %v2float
-         %71 = OpTypeFunction %v4float %12 %12 %27 %v2float %ExternalTextureParams
+         %71 = OpTypeFunction %v4float %12 %12 %30 %v2float %ExternalTextureParams
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %uint_1 = OpConstant %uint 1
@@ -257,7 +257,7 @@
 %textureSampleExternal = OpFunction %v4float None %71
      %plane0 = OpFunctionParameter %12
      %plane1 = OpFunctionParameter %12
-        %smp = OpFunctionParameter %27
+        %smp = OpFunctionParameter %30
       %coord = OpFunctionParameter %v2float
    %params_0 = OpFunctionParameter %ExternalTextureParams
          %80 = OpLabel
@@ -376,7 +376,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
         %187 = OpLoad %12 %arg_0
         %188 = OpLoad %12 %ext_tex_plane_1
-        %189 = OpLoad %27 %arg_1
+        %189 = OpLoad %30 %arg_1
         %194 = OpAccessChain %_ptr_Uniform_ExternalTextureParams_std140 %ext_tex_params %uint_0
         %195 = OpLoad %ExternalTextureParams_std140 %194
         %191 = OpFunctionCall %ExternalTextureParams %conv_ExternalTextureParams %195
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
index e5711f1..db83ef8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_7c04e6();
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl
index 8262788..fdc4508 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_9ca02c();
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
index b92a927..4911dd7 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
@@ -7,6 +7,7 @@
   return t.SampleLevel(s, clamped, 0.0f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -15,8 +16,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_9ca02c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
index b92a927..4911dd7 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
@@ -7,6 +7,7 @@
   return t.SampleLevel(s, clamped, 0.0f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -15,8 +16,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_9ca02c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
index 70a14f5..e4d2b57 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
@@ -10,16 +10,16 @@
   return textureLod(t_s, clamped, 0.0f);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 vec4 textureSampleBaseClampToEdge_9ca02c() {
   vec4 res = tint_textureSampleBaseClampToEdge(arg_0_arg_1, vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -43,16 +43,16 @@
   return textureLod(t_s, clamped, 0.0f);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 vec4 textureSampleBaseClampToEdge_9ca02c() {
   vec4 res = tint_textureSampleBaseClampToEdge(arg_0_arg_1, vec2(1.0f));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
index 4ac3156..23ebf5a 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
@@ -15,11 +15,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %tint_textureSampleBaseClampToEdge "tint_textureSampleBaseClampToEdge"
                OpName %t "t"
                OpName %s "s"
@@ -38,14 +38,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,17 +57,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
     %v2float = OpTypeVector %float 2
-         %19 = OpTypeFunction %v4float %12 %15 %v2float
+         %19 = OpTypeFunction %v4float %15 %18 %v2float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
     %float_1 = OpConstant %float 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %41 = OpConstantNull %v2float
-         %44 = OpTypeSampledImage %12
+         %44 = OpTypeSampledImage %15
          %46 = OpTypeFunction %v4float
          %52 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -91,8 +91,8 @@
          %74 = OpConstantNull %VertexOutput
      %uint_1 = OpConstant %uint 1
 %tint_textureSampleBaseClampToEdge = OpFunction %v4float None %19
-          %t = OpFunctionParameter %12
-          %s = OpFunctionParameter %15
+          %t = OpFunctionParameter %15
+          %s = OpFunctionParameter %18
       %coord = OpFunctionParameter %v2float
          %25 = OpLabel
          %39 = OpVariable %_ptr_Function_v2float Function %41
@@ -109,8 +109,8 @@
 %textureSampleBaseClampToEdge_9ca02c = OpFunction %v4float None %46
          %48 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %50 = OpLoad %12 %arg_0
-         %51 = OpLoad %15 %arg_1
+         %50 = OpLoad %15 %arg_0
+         %51 = OpLoad %18 %arg_1
          %49 = OpFunctionCall %v4float %tint_textureSampleBaseClampToEdge %50 %51 %52
                OpStore %res %49
          %55 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
index c430cd9..c72a98f 100644
--- a/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_9ca02c();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl
index a7479b8..172e914 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_1c707e();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
index 74d9cb0..3f4395e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_1c707e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
index 74d9cb0..3f4395e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_1c707e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl
index 860bce1..6e5762d 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_1c707e() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_1c707e();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm
index b2c9dc0..856032a 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_1c707e "textureSampleBias_1c707e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -51,8 +51,8 @@
 %textureSampleBias_1c707e = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl
index c9608a4..bdd0a9e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/1c707e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_1c707e();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl
index a21771c..0544943 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_53b9f7();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
index 24de814..4a32ef0 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_53b9f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
index 24de814..4a32ef0 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_53b9f7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl
index a963b37..3ce4cee 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleBias_53b9f7() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_53b9f7();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm
index 66ff9b8..1f34be5 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_53b9f7 "textureSampleBias_53b9f7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSampleBias_53b9f7 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %25
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 Bias %float_1
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl
index 971d87f..fe82f21 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/53b9f7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_53b9f7();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl
index 3f0adb5..c5f948d 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1.f, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_594824();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl
index d0f07a9..c0adccd 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_594824()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl
index d0f07a9..c0adccd 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_594824()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl
index b73f482..f747b7a 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleBias_594824() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_594824();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm
index 030aabd..557debf 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_594824 "textureSampleBias_594824"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -53,8 +53,8 @@
 %textureSampleBias_594824 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %29
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 Bias|ConstOffset %float_1 %26
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl
index 531b5d6..1d5e471 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/594824.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_594824();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl
index 8dcc3e3..9c2892b 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_6a9113();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
index cdc9154..be822f8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_6a9113()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
index cdc9154..be822f8 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_6a9113()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl
index 81fc44a..3035a60 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleBias_6a9113() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_6a9113();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm
index 1446305..d9d460e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_6a9113 "textureSampleBias_6a9113"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v2float %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSampleBias_6a9113 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %25
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 Bias %float_1
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl
index dd5958a..e9f0b56 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/6a9113.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_6a9113();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl
index bab8daa..1c3c543 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_80e579();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
index 904bf7e..108f251 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_80e579()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
index 904bf7e..108f251 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_80e579()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl
index fc85529..43d39e5 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_80e579() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_80e579();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm
index 27a0eaf..c22d51a 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_80e579 "textureSampleBias_80e579"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -52,8 +52,8 @@
 %textureSampleBias_80e579 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl
index 9c8a0b1..78c7153 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/80e579.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_80e579();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl
index 4d5e512..d2b214e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_87915c();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
index e1e91d2..37be413 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_87915c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
index e1e91d2..37be413 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_87915c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl
index 3b226dc..3c1d8ea 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_87915c() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_87915c();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm
index 6033a65..605568e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_87915c "textureSampleBias_87915c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -55,8 +55,8 @@
 %textureSampleBias_87915c = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %36
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl
index 055484f..e52ce99 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/87915c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_87915c();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl
index 7f84e89..719a954 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_9dbb51();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
index f0095af..32cffb2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_9dbb51()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
index f0095af..32cffb2 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_9dbb51()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl
index 3ea7be3..f79b8ad 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_9dbb51() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_9dbb51();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm
index dc26705..7851fb6 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_9dbb51 "textureSampleBias_9dbb51"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -54,8 +54,8 @@
 %textureSampleBias_9dbb51 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %34
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %24 = OpCompositeExtract %float %23 0
          %25 = OpCompositeExtract %float %23 1
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl
index 2a1f494..4dcbb51 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/9dbb51.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_9dbb51();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl
index c9feb51..0b1ea86 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_a161cf();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
index 3f2a3d9..e86a1eb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_a161cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
index 3f2a3d9..e86a1eb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_a161cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl
index 82f5394..c22bfbe 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleBias_a161cf() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_a161cf();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm
index f0ebf2d..adec058 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_a161cf "textureSampleBias_a161cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v2float %float_1 %float_1
@@ -53,8 +53,8 @@
 %textureSampleBias_a161cf = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %29
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 Bias|ConstOffset %float_1 %26
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl
index f155f5d..53b8548 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/a161cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_a161cf();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
index 285590d..02f7cc4 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_c6953d();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
index c5cc9af..f7e29f5 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_c6953d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
index c5cc9af..f7e29f5 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_c6953d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm
index e1a9502..f717c48 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_c6953d "textureSampleBias_c6953d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -51,8 +51,8 @@
 %textureSampleBias_c6953d = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl
index 9ac749d..29b135a 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/c6953d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_c6953d();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl
index 74f32d7..61da16d 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_d3fa1b();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
index e99ea35..e6927cc 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_d3fa1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
index e99ea35..e6927cc 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_d3fa1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl
index 5e4f86d..826db0b 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleBias_d3fa1b() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_d3fa1b();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm
index 60cb0b4..7e4b01c 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_d3fa1b "textureSampleBias_d3fa1b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -49,8 +49,8 @@
 %textureSampleBias_d3fa1b = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %25
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %15 = OpImageSampleImplicitLod %v4float %19 %22 Bias %float_1
                OpStore %res %15
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl
index a37f3ff..826f10e 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/d3fa1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_d3fa1b();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
index c58570c..4961ccd 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_eed7c4();
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
index 438aa30..d9a86eb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_eed7c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
index 438aa30..d9a86eb 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_eed7c4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm
index 2516844..3ee7971 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_eed7c4 "textureSampleBias_eed7c4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
-         %18 = OpTypeSampledImage %3
+         %18 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %22 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -52,8 +52,8 @@
 %textureSampleBias_eed7c4 = OpFunction %v4float None %12
          %14 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %32
-         %16 = OpLoad %7 %arg_1
-         %17 = OpLoad %3 %arg_0
+         %16 = OpLoad %11 %arg_1
+         %17 = OpLoad %8 %arg_0
          %19 = OpSampledImage %18 %17 %16
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl
index d58af02..a4c0c06 100644
--- a/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleBias/eed7c4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_eed7c4();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
index a354d0a..e1a18f8 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_1912e5();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
index 04e85cf..04375c9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_1912e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
index 04e85cf..04375c9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_1912e5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm
index b9759f8..3f40e9f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.spvasm
@@ -8,34 +8,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_1912e5 "textureSampleCompare_1912e5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v4float = OpTypeVector %float 4
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -51,8 +51,8 @@
 %textureSampleCompare_1912e5 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %32
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl
index 632fdef..ef05e12 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/1912e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_1912e5();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl
index 7a6c8cd..0486d5f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_3a5923();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
index 9ece4bf..61c6b2c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_3a5923()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
index 9ece4bf..61c6b2c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_3a5923()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl
index 2b0e603..e2c9f07 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompare_3a5923() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_3a5923();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm
index 8427387..6c3e4d7 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_3a5923 "textureSampleCompare_3a5923"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %21 = OpConstantComposite %v2float %float_1 %float_1
@@ -48,8 +48,8 @@
 %textureSampleCompare_3a5923 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %24
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %14 = OpImageSampleDrefImplicitLod %float %18 %21 %float_1
                OpStore %res %14
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl
index 5602374..bf5468a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/3a5923.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_3a5923();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl
index fbf99f4..1d23b27 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_63fb83();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
index 0796a12..25a23c4 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_63fb83()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
index 0796a12..25a23c4 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_63fb83()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl
index 8dfaba4..0c94cce 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSampleCompare_63fb83() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_63fb83();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm
index 583b3b1..81b5b7a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_63fb83 "textureSampleCompare_63fb83"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %21 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -48,8 +48,8 @@
 %textureSampleCompare_63fb83 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %24
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %14 = OpImageSampleDrefImplicitLod %float %18 %21 %float_1
                OpStore %res %14
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl
index 55632e2..651b196 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/63fb83.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_63fb83();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl
index d6c3e14..f90b4a2 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_7b5025();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
index e7426d9..cfdcfb5 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_7b5025()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
index e7426d9..cfdcfb5 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_7b5025()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm
index 94c72c2..9e86f1d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_7b5025 "textureSampleCompare_7b5025"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -54,8 +54,8 @@
 %textureSampleCompare_7b5025 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %35
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl
index 750e041..e8c68cf 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/7b5025.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_7b5025();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl
index 4a531f0..2f515ca 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_90ae56();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
index e1f60c1..90e1264 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_90ae56()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
index e1f60c1..90e1264 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_90ae56()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl
index ba64a0f..31c4bee 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompare_90ae56() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_90ae56();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm
index 72bc458..70fa5c1 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_90ae56 "textureSampleCompare_90ae56"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -50,8 +50,8 @@
 %textureSampleCompare_90ae56 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %31
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl
index 9a07480..3c4bd38 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/90ae56.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_90ae56();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
index d956737..c475904 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_a3ca7e();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
index e9a4135..1378601 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_a3ca7e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
index e9a4135..1378601 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_a3ca7e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
index 52e7c1b..cdcd2d4 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
@@ -8,34 +8,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_a3ca7e "textureSampleCompare_a3ca7e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v4float = OpTypeVector %float 4
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -52,8 +52,8 @@
 %textureSampleCompare_a3ca7e = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %32
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
index 03138b0..d41b27b 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_a3ca7e();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl
index 0b24dea..b1382ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_af1051();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
index 226da46..d7338b7 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_af1051()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
index 226da46..d7338b7 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_af1051()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm
index 62c468c..3003387 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_af1051 "textureSampleCompare_af1051"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -53,8 +53,8 @@
 %textureSampleCompare_af1051 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %33
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl
index 68ca544..085a32d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/af1051.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_af1051();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl
index ddfcc2d..dd4a4f5 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dd431d();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
index 3819dae..d4d16f6 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dd431d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
index 3819dae..d4d16f6 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dd431d()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl
index 8373436..bc75a98 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompare_dd431d() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_dd431d();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm
index e5b8de1..eacf4a0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_dd431d "textureSampleCompare_dd431d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -51,8 +51,8 @@
 %textureSampleCompare_dd431d = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %31
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %23 = OpCompositeExtract %float %22 0
          %24 = OpCompositeExtract %float %22 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl
index 7f6216d..67c8027 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dd431d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dd431d();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl
index e4a36d0..ff329a0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dec064();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
index ce9b7b2..2f05a76 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dec064()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
index ce9b7b2..2f05a76 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dec064()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl
index 035091a..1ea1a35 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompare_dec064() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_dec064();
 }
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm
index 56e90fa..74e812a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_dec064 "textureSampleCompare_dec064"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
-         %17 = OpTypeSampledImage %3
+         %17 = OpTypeSampledImage %7
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %21 = OpConstantComposite %v2float %float_1 %float_1
@@ -52,8 +52,8 @@
 %textureSampleCompare_dec064 = OpFunction %float None %11
          %13 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %28
-         %15 = OpLoad %7 %arg_1
-         %16 = OpLoad %3 %arg_0
+         %15 = OpLoad %10 %arg_1
+         %16 = OpLoad %7 %arg_0
          %18 = OpSampledImage %17 %16 %15
          %14 = OpImageSampleDrefImplicitLod %float %18 %21 %float_1 ConstOffset %25
                OpStore %res %14
diff --git a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl
index f98a2db..2c4ad71 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompare/dec064.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dec064();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl
index 5ad56e5..b699913 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1116ed();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
index eb097f6..26516d0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1116ed()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
index eb097f6..26516d0 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1116ed()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index f2c77b8..3d4112e 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1116ed() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1116ed() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
index 9b4648a..493610c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_1116ed "textureSampleCompareLevel_1116ed"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureSampleCompareLevel_1116ed = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
index 353f7ff..8c896fa 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1116ed();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl
index 1c311c3..2a3b9bc 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1568e3();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
index a0b3425..6f7a05a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1568e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
index a0b3425..6f7a05a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1568e3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index 4d50008..1c1b547 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1568e3() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1568e3() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
index 7662cd9..86a4955 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_1568e3 "textureSampleCompareLevel_1568e3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureSampleCompareLevel_1568e3 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleDrefExplicitLod %float %26 %29 %float_1 Lod %float_0
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
index cd60236..ca38f0c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1568e3();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl
index 715161d..01b2f90 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_2ad2b1();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
index fcc9d51..93eb202 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_2ad2b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
index fcc9d51..93eb202 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_2ad2b1()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index 3133428..a037331 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_2ad2b1() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_2ad2b1() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
index 08e14ee..3c6485a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_2ad2b1 "textureSampleCompareLevel_2ad2b1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureSampleCompareLevel_2ad2b1 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleDrefExplicitLod %float %26 %29 %float_1 Lod %float_0
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
index 04c709d..92ce6d1 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_2ad2b1();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
index 9275e92..90cc21dd 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_4cf3a2();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
index 5480f44..ea45333 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_4cf3a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
index 5480f44..ea45333 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_4cf3a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
index 33a7d21..65f1a61 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_4cf3a2 "textureSampleCompareLevel_4cf3a2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureSampleCompareLevel_4cf3a2 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
index e9f6079..548daf9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_4cf3a2();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl
index 79ce854..28d08db 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7dc3c0();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
index 8daf106..3fe247b 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7dc3c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
index 8daf106..3fe247b 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7dc3c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
index f472143..3efe786 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7dc3c0() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7dc3c0() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
index 694f5a4..a3c5c98 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_7dc3c0 "textureSampleCompareLevel_7dc3c0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureSampleCompareLevel_7dc3c0 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
index ce549a2..c0c3452 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7dc3c0();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl
index 185ec6f..ce2e48d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7f2b9a();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
index fae789e..47d010a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7f2b9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
index fae789e..47d010a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7f2b9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
index 6b9aeea..e7b6e9a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7f2b9a() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7f2b9a() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
index e8982cf..3dbd40d 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_7f2b9a "textureSampleCompareLevel_7f2b9a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -85,8 +85,8 @@
 %textureSampleCompareLevel_7f2b9a = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleDrefExplicitLod %float %26 %29 %float_1 Lod|ConstOffset %float_0 %34
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
index 7832e05..eb6450a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7f2b9a();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
index 8491a54..582a9d2 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_958c87();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
index 890114e..aabcbc9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_958c87()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
index 890114e..aabcbc9 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_958c87()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
index 20d363d..550da5c 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_958c87 "textureSampleCompareLevel_958c87"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureSampleCompareLevel_958c87 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
index 89387c5..a1d9620 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_958c87();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl
index 584ae62..acbc631 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_b6e47c();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
index 35258a1..1933730 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_b6e47c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
index 35258a1..1933730 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_b6e47c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
index 4c2c6d2..1ad0e35 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_b6e47c "textureSampleCompareLevel_b6e47c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureSampleCompareLevel_b6e47c = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
index ebd6600..0fa5329 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_b6e47c();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl
index 1e56438..8d470ad 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_bcb3dd();
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
index 81ab5bb..a09347a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_bcb3dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
index 81ab5bb..a09347a 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_bcb3dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
index dfce159..0ac4c93 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_bcb3dd "textureSampleCompareLevel_bcb3dd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -86,8 +86,8 @@
 %textureSampleCompareLevel_bcb3dd = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
index bc2ed57..d36179f 100644
--- a/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_bcb3dd();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl
index e950e08..006c80c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_21402b();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
index 99ca8b7..03d2570 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_21402b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
index 99ca8b7..03d2570 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_21402b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl
index f29d1d4..d1fae62 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_21402b() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_21402b() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm
index b79be91..ee7760f 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_21402b "textureSampleGrad_21402b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureSampleGrad_21402b = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Grad %29 %29
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl
index fb98f610b..210c1b5 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/21402b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_21402b();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl
index 47d1d6a..c5bb8d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_2ecd8f();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
index 1e8c40c..145b3cc 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_2ecd8f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
index 1e8c40c..145b3cc 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_2ecd8f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index 7fa98c4..9abde23 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_2ecd8f() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_2ecd8f() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
index bf66508..dcbf7f6 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_2ecd8f "textureSampleGrad_2ecd8f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureSampleGrad_2ecd8f = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
index d19cc04..a8c8f83 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_2ecd8f();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl
index c70f40c..e2aad48 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_521263();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
index cb7bcb6..7c1776c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_521263()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
index cb7bcb6..7c1776c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_521263()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl
index 9156fc3..7a39742 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_521263() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_521263() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm
index c984c56..a1e6286 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_521263 "textureSampleGrad_521263"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureSampleGrad_521263 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Grad %29 %29
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl
index 6571b9d..0e33155 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/521263.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_521263();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl
index 4c5b252..d5b329e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5312f4();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
index 5d3682c..23b022e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5312f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
index 5d3682c..23b022e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5312f4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl
index 15fc934..0d5d65a 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleGrad_5312f4() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleGrad_5312f4() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm
index 640947e..9d0fb3d 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_5312f4 "textureSampleGrad_5312f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureSampleGrad_5312f4 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Grad %29 %29
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl
index 5b7c5de..5ddb04e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5312f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5312f4();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl
index 55e8a64..9cf0008 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), vec3<f32>(1.f), vec3<f32>(1.f), vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5884dd();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
index d9bcf03..481afaf 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5884dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
index d9bcf03..481afaf 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5884dd()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl
index 362b0a9..6f3ffc7 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_5884dd() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_5884dd() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm
index c76e004..cacc457 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_5884dd "textureSampleGrad_5884dd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleGrad_5884dd = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Grad|ConstOffset %29 %29 %33
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl
index ce7ba80..77ef2f7 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/5884dd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5884dd();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl
index 96c1fcc..bec445c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<f32>(1.f), vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_7cd6de();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
index 3275634..6278728 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_7cd6de()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
index 3275634..6278728 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_7cd6de()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl
index a1e4646..364f499 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_7cd6de() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_7cd6de() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm
index 038c43c..33f85a2 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_7cd6de "textureSampleGrad_7cd6de"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureSampleGrad_7cd6de = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl
index e9aa5d7..2c514d3 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/7cd6de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_7cd6de();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl
index 19c1e0f..5076787 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<f32>(1.f), vec2<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_a09131();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
index 2dc6089..50dbd3c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_a09131()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
index 2dc6089..50dbd3c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_a09131()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl
index f7e0f46..839b0e3 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_a09131() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_a09131() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm
index 2a38f70..c934e05 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_a09131 "textureSampleGrad_a09131"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -80,8 +80,8 @@
 %textureSampleGrad_a09131 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl
index e3e0209..ff6bfe4 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/a09131.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_a09131();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
index d110808..99d23ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), 1u, vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_bbb58f();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
index dfdee27..296a736 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_bbb58f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
index dfdee27..296a736 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_bbb58f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm
index 3bc2b25..b3af0b8 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_bbb58f "textureSampleGrad_bbb58f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -80,8 +80,8 @@
 %textureSampleGrad_bbb58f = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl
index 7b7c0ef..5543d15 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/bbb58f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_bbb58f();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl
index 687203096..73e276e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), vec2<f32>(1.f), vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d4e3c5();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
index 5a37226..61ae5ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d4e3c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
index 5a37226..61ae5ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d4e3c5()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl
index 1fd5cc3..37961ae 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_d4e3c5() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_d4e3c5() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
index 3f92ba0..c78e82c 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_d4e3c5 "textureSampleGrad_d4e3c5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleGrad_d4e3c5 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Grad|ConstOffset %29 %29 %33
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
index 168f2c0..25e8f35 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d4e3c5();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl
index 3e68124..3ab0789 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<f32>(1.f), vec2<f32>(1.f), vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d65515();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
index f14be0b..c622c87 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d65515()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
index f14be0b..c622c87 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d65515()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl
index 9b06621..4651a13 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_d65515() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_d65515() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm
index 9ce3225..f888310 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_d65515 "textureSampleGrad_d65515"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureSampleGrad_d65515 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl
index 9a15954..b4db846 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/d65515.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d65515();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
index 5bc868d..c22da25 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, vec3<f32>(1.f), 1i, vec3<f32>(1.f), vec3<f32>(1.f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_e383db();
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
index 6716fc7..af5ab8e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_e383db()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
index 6716fc7..af5ab8e 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_e383db()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm
index 4c28cce..efb7eab 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_e383db "textureSampleGrad_e383db"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureSampleGrad_e383db = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl
index 6ca7417..87aaf48 100644
--- a/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleGrad/e383db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_e383db();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl
index ebb54a8..12db9dc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_02be59();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
index f4c327eb..fd82965 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_02be59()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
index f4c327eb..fd82965 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_02be59()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl
index 8374635..1113163 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_02be59() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_02be59() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm
index 0e47b61..6d11c7c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_02be59 "textureSampleLevel_02be59"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v2float %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureSampleLevel_02be59 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpConvertSToF %float %int_1
          %23 = OpImageSampleExplicitLod %v4float %27 %30 Lod %31
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl
index 96e18eb..c6953b5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/02be59.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_02be59();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl
index 22c4662..5902a79 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0b0a1b();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
index d1319cd..ce219dc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0b0a1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
index d1319cd..ce219dc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0b0a1b()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl
index f4e4dbb..d13668a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_0b0a1b() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_0b0a1b() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
index 91301b8..63746d5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_0b0a1b "textureSampleLevel_0b0a1b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleLevel_0b0a1b = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Lod|ConstOffset %float_1 %33
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
index 9f515d2..42e66e5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0b0a1b();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
index 1338895..a553676 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0bdd9a();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
index 3f8dcf0..5037763 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0bdd9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
index 3f8dcf0..5037763 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0bdd9a()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
index a88b95d..8dcb88c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_0bdd9a "textureSampleLevel_0bdd9a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureSampleLevel_0bdd9a = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
index f1e8cbc..11fd6b0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0bdd9a();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl
index 39d8861..04c5325 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1b0291();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
index e68c354..61b0c2e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1b0291()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
index e68c354..61b0c2e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1b0291()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm
index e28ad66..d3ca2fd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_1b0291 "textureSampleLevel_1b0291"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -82,8 +82,8 @@
 %textureSampleLevel_1b0291 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpConvertSToF %float %int_1
          %23 = OpImageSampleExplicitLod %v4float %27 %30 Lod %31
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl
index 0bedcdf..d73109f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1b0291.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1b0291();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl
index cfedb1a..2e7ee3e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1bf73e();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
index c32178f..c40418d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1bf73e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
index c32178f..c40418d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1bf73e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm
index 76a673d..3ade682 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_1bf73e "textureSampleLevel_1bf73e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -83,8 +83,8 @@
 %textureSampleLevel_1bf73e = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl
index 0b69876..48f4db0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/1bf73e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1bf73e();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl
index 3a26e13..63c703c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_265cc7();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
index 3597dd2..cc1095b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_265cc7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
index 3597dd2..cc1095b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_265cc7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl
index a1d4230..f0e2278 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_265cc7() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_265cc7() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm
index d34b6d8..3d64a10 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_265cc7 "textureSampleLevel_265cc7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -80,8 +80,8 @@
 %textureSampleLevel_265cc7 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl
index 845ed61..b542ad3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/265cc7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_265cc7();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl
index 0fd105f..8a6d8ec 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_2974eb();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
index 0223281..8ad7272 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_2974eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
index 0223281..8ad7272 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_2974eb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm
index fa9a028..f51550d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_2974eb "textureSampleLevel_2974eb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -83,8 +83,8 @@
 %textureSampleLevel_2974eb = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl
index f4a11a4..ec2109c 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/2974eb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_2974eb();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl
index e3ff729..fb7954d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_302be4();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
index 28475a8..63947cf 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_302be4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
index 28475a8..63947cf 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_302be4()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl
index 7cf181e..37cd5f3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_302be4() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_302be4() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm
index 2d98c26..46c5b8d2 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_302be4 "textureSampleLevel_302be4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -82,8 +82,8 @@
 %textureSampleLevel_302be4 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl
index 4a89b93..14de605 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/302be4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_302be4();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl
index 7cf2f52..edfde62 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36780e();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
index 933d92a..98a1cb1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36780e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
index 933d92a..98a1cb1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36780e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm
index fd88d87..f037ed1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_36780e "textureSampleLevel_36780e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureSampleLevel_36780e = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl
index 92d3e43..3efafe0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36780e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36780e();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl
index aaa154c..48e0013 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36f0d3();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
index ee71650..e787921 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36f0d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
index ee71650..e787921 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36f0d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm
index 929484b..c9eb5c5 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_36f0d3 "textureSampleLevel_36f0d3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureSampleLevel_36f0d3 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl
index 89baf47..b3d56ca 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/36f0d3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36f0d3();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl
index 5b2c2cb..462c8c7 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_3c3442();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
index d63ce13..d0cd974 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_3c3442()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
index d63ce13..d0cd974 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_3c3442()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm
index 9b7a18d..c1ba44a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_3c3442 "textureSampleLevel_3c3442"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -83,8 +83,8 @@
 %textureSampleLevel_3c3442 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl
index 1422c1f..74c932e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/3c3442.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_3c3442();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl
index 01d585f..f59a8b9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_615583();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
index a3449d6..a40d542 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_615583()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
index a3449d6..a40d542 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_615583()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm
index b59b9ee..1e65e81 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_615583 "textureSampleLevel_615583"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -81,8 +81,8 @@
 %textureSampleLevel_615583 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl
index e11fc01..18de3f0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/615583.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_615583();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl
index b6e956f..91032d0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_73e892();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
index 6f031da..624711a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_73e892()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
index 6f031da..624711a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_73e892()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl
index f5f1531..640f1cc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_73e892() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_73e892() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm
index 77411ff..f2c0aec 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_73e892 "textureSampleLevel_73e892"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v2float %float_1 %float_1
@@ -80,8 +80,8 @@
 %textureSampleLevel_73e892 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpConvertSToF %float %uint_1
          %23 = OpImageSampleExplicitLod %v4float %27 %30 Lod %31
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl
index b57d16d..7d149be 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/73e892.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_73e892();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl
index bdb4396..a8b0a86 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_749baf();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
index a0b814e..91dc047 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_749baf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
index a0b814e..91dc047 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_749baf()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl
index cb080df..8653bbd 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_749baf() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_749baf() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm
index d835d2e..9e4354e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_749baf "textureSampleLevel_749baf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v2float %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureSampleLevel_749baf = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpConvertSToF %float %int_1
          %23 = OpImageSampleExplicitLod %v4float %27 %30 Lod|ConstOffset %31 %35
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl
index ee42d3c..ad2a51b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/749baf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_749baf();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
index 0c99b1f..7ee43ef 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_941a53();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
index a19e125..d0a2108 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_941a53()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
index a19e125..d0a2108 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_941a53()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm
index 5c58635..6997937 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_941a53 "textureSampleLevel_941a53"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -81,8 +81,8 @@
 %textureSampleLevel_941a53 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl
index 0aa35bb..517992f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/941a53.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_941a53();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
index b336a75..b34eda0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_a12142();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
index 26af0e5..5ed2e25 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_a12142()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
index 26af0e5..5ed2e25 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_a12142()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm
index eca836b..63a09e8 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_a12142 "textureSampleLevel_a12142"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleLevel_a12142 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl
index 5a4a6d7..956422e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/a12142.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_a12142();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
index 2a6c6cb..e2f0b08 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_aab3b9();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
index cae59c1..5e3c444 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_aab3b9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
index cae59c1..5e3c444 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_aab3b9()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm
index 47dfc14..a7fa5bf 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_aab3b9 "textureSampleLevel_aab3b9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -80,8 +80,8 @@
 %textureSampleLevel_aab3b9 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %30 = OpCompositeExtract %float %29 0
          %31 = OpCompositeExtract %float %29 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl
index c754778..6bc652e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/aab3b9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_aab3b9();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl
index bf01a21..211f7f8 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_abfcc0();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
index f0ad328..ffee0c0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_abfcc0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
index f0ad328..ffee0c0 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_abfcc0()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl
index ad2a749..d2bcd4d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_abfcc0() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_abfcc0() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm
index 2a51efb..fd7a466 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_abfcc0 "textureSampleLevel_abfcc0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureSampleLevel_abfcc0 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Lod %float_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl
index f4a1879..9fedc87 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/abfcc0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_abfcc0();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
index c83c8e1..0cf0153 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1i, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae5e39();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
index 5e95282..1a79e39 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae5e39()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
index 5e95282..1a79e39 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae5e39()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm
index 4c196c1..7ea6133 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_ae5e39 "textureSampleLevel_ae5e39"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleLevel_ae5e39 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl
index 967b753..3fca62d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae5e39.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae5e39();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl
index 40cbd79..58abc13b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae92a2();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
index c530438..31c439d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae92a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
index c530438..31c439d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae92a2()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm
index 2197be3..dd23fe6 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_ae92a2 "textureSampleLevel_ae92a2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -80,8 +80,8 @@
 %textureSampleLevel_ae92a2 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpConvertSToF %float %uint_1
          %23 = OpImageSampleExplicitLod %v4float %27 %30 Lod %31
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl
index 03841b8..36462df 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ae92a2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae92a2();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl
index 89d4bb5..6cfee58 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1i, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_b7c55c();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
index f3910eb..46d801a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_b7c55c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
index f3910eb..46d801a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_b7c55c()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl
index f4720a5..3b5c7dc 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_b7c55c() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_b7c55c() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm
index 4f2b5d1..56d9e0d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_b7c55c "textureSampleLevel_b7c55c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureSampleLevel_b7c55c = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl
index e00fe94..217847f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/b7c55c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_b7c55c();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl
index 90816d6..959888b 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c32df7();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
index 2d34084..b4a8576 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c32df7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
index 2d34084..b4a8576 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c32df7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl
index c8aed76..8b35884 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleLevel_c32df7() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleLevel_c32df7() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm
index 8255745..82a3fd9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_c32df7 "textureSampleLevel_c32df7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureSampleLevel_c32df7 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Lod %float_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl
index d76b8f8..609f363 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c32df7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c32df7();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl
index 670c38b..7053e5d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1.f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c6aca6();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
index 8ffa3e1..057130f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c6aca6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
index 8ffa3e1..057130f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c6aca6()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl
index 759a3b3..076489e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_c6aca6() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_c6aca6() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm
index 68ad12b..fd0cf87 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_c6aca6 "textureSampleLevel_c6aca6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v2float %float_1 %float_1
@@ -79,8 +79,8 @@
 %textureSampleLevel_c6aca6 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Lod %float_1
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl
index e646971..9125062 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/c6aca6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c6aca6();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl
index 189377a..712e931 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_cdfe0f();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
index fa9f90f..63bd6b3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_cdfe0f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
index fa9f90f..63bd6b3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_cdfe0f()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
index ca2550a..9f37afa 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_cdfe0f "textureSampleLevel_cdfe0f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureSampleLevel_cdfe0f = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
index b7bddf8..9fb05ea 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_cdfe0f();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl
index 95fa8a4..e4ed6c4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1.f, vec3<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_dcbecb();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
index 3b9bf09..e86c9be 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_dcbecb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
index 3b9bf09..e86c9be 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_dcbecb()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl
index 25a7a33..7f40906 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_dcbecb() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_dcbecb() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm
index 9e6ad1f..9c748c4 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_dcbecb "textureSampleLevel_dcbecb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %29 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleLevel_dcbecb = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %22 = OpImageSampleExplicitLod %v4float %26 %29 Lod|ConstOffset %float_1 %33
                OpStore %res %22
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl
index a3a9bf8..c5f552d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/dcbecb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_dcbecb();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl
index a0d6947..d54846a 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1i, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_e6ce9e();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
index 02f4e01..341289d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_e6ce9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
index 02f4e01..341289d 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_e6ce9e()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
index 08eeb27..1cc46f7 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_e6ce9e "textureSampleLevel_e6ce9e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -85,8 +85,8 @@
 %textureSampleLevel_e6ce9e = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %32 = OpCompositeExtract %float %31 0
          %33 = OpCompositeExtract %float %31 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
index 9106a7e..5ea6b12 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_e6ce9e();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl
index a6bbf93..7419068 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_f3b2c8();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
index ca28ce2..34c11ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_f3b2c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
index ca28ce2..34c11ee 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_f3b2c8()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl
index bab0a8a..59b20a3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_f3b2c8() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_f3b2c8() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
index 8fa0ce0..85f4909 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_f3b2c8 "textureSampleLevel_f3b2c8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v2float %float_1 %float_1
@@ -84,8 +84,8 @@
 %textureSampleLevel_f3b2c8 = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpConvertSToF %float %uint_1
          %23 = OpImageSampleExplicitLod %v4float %27 %30 Lod|ConstOffset %31 %37
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
index 2684348..cb196e1 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_f3b2c8();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl
index c0b1593..b3ec8ca 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, vec2<f32>(1.f), 1u, 1.f, vec2<i32>(1i));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_faa6d7();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
index dafe8a4..0197518 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_faa6d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
index dafe8a4..0197518 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_faa6d7()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl
index 8fb9816..d12080e 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_faa6d7() {
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_faa6d7() {
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm
index ab3d0b0..e4989eb 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_faa6d7 "textureSampleLevel_faa6d7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,14 +32,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,17 +51,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
-         %25 = OpTypeSampledImage %12
+         %25 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -84,8 +84,8 @@
 %textureSampleLevel_faa6d7 = OpFunction %v4float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %5
-         %23 = OpLoad %15 %arg_1
-         %24 = OpLoad %12 %arg_0
+         %23 = OpLoad %18 %arg_1
+         %24 = OpLoad %15 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl
index 5162c5d..5a647f3 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/faa6d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_faa6d7();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
index 864deb1..b84d994 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -42,8 +45,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, vec3<f32>(1.f), 1u, 1i);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ff11bc();
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
index b14c7a7..d9eeb93 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ff11bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
index b14c7a7..d9eeb93 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ff11bc()));
   return;
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm
index 60c6bd2..3340ca9 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_ff11bc "textureSampleLevel_ff11bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,17 +52,17 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
-         %26 = OpTypeSampledImage %12
+         %26 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %30 = OpConstantComposite %v3float %float_1 %float_1 %float_1
@@ -83,8 +83,8 @@
 %textureSampleLevel_ff11bc = OpFunction %float None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_float Function %8
-         %24 = OpLoad %15 %arg_1
-         %25 = OpLoad %12 %arg_0
+         %24 = OpLoad %18 %arg_1
+         %25 = OpLoad %15 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %31 = OpCompositeExtract %float %30 0
          %32 = OpCompositeExtract %float %30 1
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl
index c297dc4..78f3294 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/ff11bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ff11bc();
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl
index 63111d4..4576a53 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 3, f16>) -> mat<3, 3, f16>
 fn transpose_06794e() -> i32{
   var res: mat3x3<f16> = transpose(mat3x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_06794e();
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.dxc.hlsl
index 82ef72d..9e2992b 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_06794e() {
   matrix<float16_t, 3, 3> res = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_06794e()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.glsl
index 372ab52..20a763b 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_06794e() {
   f16mat3 res = f16mat3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_06794e() {
   f16mat3 res = f16mat3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.wgsl
index f3e4920..c2e73a5 100644
--- a/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/06794e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_06794e() -> i32 {
   var res : mat3x3<f16> = transpose(mat3x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_06794e();
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl
index f235247..d771d55 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 3, f32>) -> mat<3, 4, f32>
 fn transpose_2585cd() -> i32{
   var res: mat3x4<f32> = transpose(mat4x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_2585cd();
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.dxc.hlsl
index 0a84423..b1b0c95 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_2585cd() {
   float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_2585cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.fxc.hlsl
index 0a84423..b1b0c95 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_2585cd() {
   float3x4 res = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_2585cd()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.glsl
index a88762b..2392376 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_2585cd() {
   mat3x4 res = mat3x4(vec4(1.0f), vec4(1.0f), vec4(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_2585cd() {
   mat3x4 res = mat3x4(vec4(1.0f), vec4(1.0f), vec4(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.wgsl
index 5bad2d6..2b249b7 100644
--- a/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/2585cd.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_2585cd() -> i32 {
   var res : mat3x4<f32> = transpose(mat4x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_2585cd();
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl
index 4b572c5..36e2a47 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 2, f32>) -> mat<2, 2, f32>
 fn transpose_31d679() -> i32{
   var res: mat2x2<f32> = transpose(mat2x2<f32>(1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31d679();
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.dxc.hlsl
index c832527..0e089d5 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31d679() {
   float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31d679()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.fxc.hlsl
index c832527..0e089d5 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31d679() {
   float2x2 res = float2x2((1.0f).xx, (1.0f).xx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31d679()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.glsl
index 00b8d151..39a6af8 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31d679() {
   mat2 res = mat2(vec2(1.0f), vec2(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31d679() {
   mat2 res = mat2(vec2(1.0f), vec2(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.wgsl
index 9b70aae..d391eef 100644
--- a/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/31d679.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_31d679() -> i32 {
   var res : mat2x2<f32> = transpose(mat2x2<f32>(1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31d679();
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl
index aa5a370..b76602f 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 2, f32>) -> mat<2, 4, f32>
 fn transpose_31e37e() -> i32{
   var res: mat2x4<f32> = transpose(mat4x2<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31e37e();
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.dxc.hlsl
index 190a799..d39459a 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31e37e() {
   float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31e37e()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.fxc.hlsl
index 190a799..d39459a 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31e37e() {
   float2x4 res = float2x4((1.0f).xxxx, (1.0f).xxxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31e37e()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.glsl
index f51778d..f02dbdd 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31e37e() {
   mat2x4 res = mat2x4(vec4(1.0f), vec4(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31e37e() {
   mat2x4 res = mat2x4(vec4(1.0f), vec4(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.wgsl
index 74cae4b..3ca2080 100644
--- a/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/31e37e.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_31e37e() -> i32 {
   var res : mat2x4<f32> = transpose(mat4x2<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31e37e();
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl
index e7ec511..4ad5d2d 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 4, f32>) -> mat<4, 2, f32>
 fn transpose_4ce359() -> i32{
   var res: mat4x2<f32> = transpose(mat2x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4ce359();
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.dxc.hlsl
index 86f25b5..9020eba 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4ce359() {
   float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4ce359()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.fxc.hlsl
index 86f25b5..9020eba 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4ce359() {
   float4x2 res = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4ce359()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.glsl
index 9fa21c3..ebae6fd 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4ce359() {
   mat4x2 res = mat4x2(vec2(1.0f), vec2(1.0f), vec2(1.0f), vec2(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4ce359() {
   mat4x2 res = mat4x2(vec2(1.0f), vec2(1.0f), vec2(1.0f), vec2(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.wgsl
index 5d3f934..5b8bbb3 100644
--- a/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/4ce359.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_4ce359() -> i32 {
   var res : mat4x2<f32> = transpose(mat2x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4ce359();
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl
index 19f4b33..725df64 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 3, f32>) -> mat<3, 2, f32>
 fn transpose_4dc9a1() -> i32{
   var res: mat3x2<f32> = transpose(mat2x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4dc9a1();
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.dxc.hlsl
index 7800ec2..d95cacc 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4dc9a1() {
   float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.fxc.hlsl
index 7800ec2..d95cacc 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4dc9a1() {
   float3x2 res = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.glsl
index 56455d1..39e0fea 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4dc9a1() {
   mat3x2 res = mat3x2(vec2(1.0f), vec2(1.0f), vec2(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4dc9a1() {
   mat3x2 res = mat3x2(vec2(1.0f), vec2(1.0f), vec2(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.wgsl
index 6d4dc8f..4b11c91 100644
--- a/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/4dc9a1.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_4dc9a1() -> i32 {
   var res : mat3x2<f32> = transpose(mat2x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4dc9a1();
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl
index 6c4ca7f..bd47bca 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 2, f16>) -> mat<2, 4, f16>
 fn transpose_5edd96() -> i32{
   var res: mat2x4<f16> = transpose(mat4x2<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5edd96();
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.dxc.hlsl
index a3d5e73..0d22135 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_5edd96() {
   matrix<float16_t, 2, 4> res = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_5edd96()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.glsl
index 25bed98..0086014 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5edd96() {
   f16mat2x4 res = f16mat2x4(f16vec4(1.0hf), f16vec4(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5edd96() {
   f16mat2x4 res = f16mat2x4(f16vec4(1.0hf), f16vec4(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.wgsl
index 52911c3..96c1d87 100644
--- a/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/5edd96.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_5edd96() -> i32 {
   var res : mat2x4<f16> = transpose(mat4x2<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5edd96();
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl
index 075c3f6..6a14d15 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 3, f16>) -> mat<3, 4, f16>
 fn transpose_5f36bf() -> i32{
   var res: mat3x4<f16> = transpose(mat4x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5f36bf();
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.dxc.hlsl
index 75e084e..9be2fbc 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_5f36bf() {
   matrix<float16_t, 3, 4> res = matrix<float16_t, 3, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_5f36bf()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.glsl
index 8936fd7..f83b579 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5f36bf() {
   f16mat3x4 res = f16mat3x4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5f36bf() {
   f16mat3x4 res = f16mat3x4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.wgsl
index 7aff42d..1c817b4 100644
--- a/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/5f36bf.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_5f36bf() -> i32 {
   var res : mat3x4<f16> = transpose(mat4x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5f36bf();
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl
index 3be01cc..d2300e7 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 2, f16>) -> mat<2, 2, f16>
 fn transpose_7be8b2() -> i32{
   var res: mat2x2<f16> = transpose(mat2x2<f16>(1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_7be8b2();
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.dxc.hlsl
index edf15b8..7d791f7 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_7be8b2() {
   matrix<float16_t, 2, 2> res = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_7be8b2()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.glsl
index d683c37..cf97bcc 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_7be8b2() {
   f16mat2 res = f16mat2(f16vec2(1.0hf), f16vec2(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_7be8b2() {
   f16mat2 res = f16mat2(f16vec2(1.0hf), f16vec2(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.wgsl
index e4aa4c7..891969d 100644
--- a/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/7be8b2.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_7be8b2() -> i32 {
   var res : mat2x2<f16> = transpose(mat2x2<f16>(1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_7be8b2();
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl
index fe433ca..26f2b2d 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 4, f16>) -> mat<4, 4, f16>
 fn transpose_844869() -> i32{
   var res: mat4x4<f16> = transpose(mat4x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_844869();
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.dxc.hlsl
index d647452..e7acebc 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_844869() {
   matrix<float16_t, 4, 4> res = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_844869()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.glsl
index 6b60913..bbaaa76 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_844869() {
   f16mat4 res = f16mat4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_844869() {
   f16mat4 res = f16mat4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.wgsl
index be2fdc1..666042a 100644
--- a/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/844869.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_844869() -> i32 {
   var res : mat4x4<f16> = transpose(mat4x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_844869();
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl
index 54320d6..20aa852 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 3, f32>) -> mat<3, 3, f32>
 fn transpose_854336() -> i32{
   var res: mat3x3<f32> = transpose(mat3x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_854336();
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.dxc.hlsl
index 001f4d5..458b4e1 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_854336() {
   float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_854336()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.fxc.hlsl
index 001f4d5..458b4e1 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_854336() {
   float3x3 res = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_854336()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.glsl
index 562e5dc..7129515 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_854336() {
   mat3 res = mat3(vec3(1.0f), vec3(1.0f), vec3(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_854336() {
   mat3 res = mat3(vec3(1.0f), vec3(1.0f), vec3(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.wgsl
index 44d2d52..754864c 100644
--- a/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/854336.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_854336() -> i32 {
   var res : mat3x3<f32> = transpose(mat3x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_854336();
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl
index 7a05d49..f23eccd 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 4, f16>) -> mat<4, 3, f16>
 fn transpose_8c06ce() -> i32{
   var res: mat4x3<f16> = transpose(mat3x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_8c06ce();
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.dxc.hlsl
index a762edd..4c78ecb 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_8c06ce() {
   matrix<float16_t, 4, 3> res = matrix<float16_t, 4, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_8c06ce()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.glsl
index 00bfe58..c47c3f5 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_8c06ce() {
   f16mat4x3 res = f16mat4x3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_8c06ce() {
   f16mat4x3 res = f16mat4x3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.wgsl
index 66077a2..5623afb 100644
--- a/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/8c06ce.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_8c06ce() -> i32 {
   var res : mat4x3<f16> = transpose(mat3x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_8c06ce();
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl
index 5bad141..72f9cce 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 2, f16>) -> mat<2, 3, f16>
 fn transpose_b9ad1f() -> i32{
   var res: mat2x3<f16> = transpose(mat3x2<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_b9ad1f();
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.dxc.hlsl
index 7c1e85c..5b6d27a 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_b9ad1f() {
   matrix<float16_t, 2, 3> res = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.glsl
index 8476bb39..dfe460b 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_b9ad1f() {
   f16mat2x3 res = f16mat2x3(f16vec3(1.0hf), f16vec3(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_b9ad1f() {
   f16mat2x3 res = f16mat2x3(f16vec3(1.0hf), f16vec3(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.wgsl
index 254f409..d735463 100644
--- a/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/b9ad1f.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_b9ad1f() -> i32 {
   var res : mat2x3<f16> = transpose(mat3x2<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_b9ad1f();
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl
index 0a0fb36..f17122e 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 4, f32>) -> mat<4, 4, f32>
 fn transpose_c1b600() -> i32{
   var res: mat4x4<f32> = transpose(mat4x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_c1b600();
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.dxc.hlsl
index 64edd69..481f3a5 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_c1b600() {
   float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_c1b600()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.fxc.hlsl
index 64edd69..481f3a5 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_c1b600() {
   float4x4 res = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_c1b600()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.glsl
index 32584eb..87cc708 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_c1b600() {
   mat4 res = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_c1b600() {
   mat4 res = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.wgsl
index 35fd132..c2858e4 100644
--- a/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/c1b600.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_c1b600() -> i32 {
   var res : mat4x4<f32> = transpose(mat4x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_c1b600();
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl
index 36b89ac..276d369 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 3, f16>) -> mat<3, 2, f16>
 fn transpose_d6faec() -> i32{
   var res: mat3x2<f16> = transpose(mat2x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d6faec();
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.dxc.hlsl
index 26e756e..1537a59 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_d6faec() {
   matrix<float16_t, 3, 2> res = matrix<float16_t, 3, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_d6faec()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.glsl
index 7ad1edd..215aae63 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d6faec() {
   f16mat3x2 res = f16mat3x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d6faec() {
   f16mat3x2 res = f16mat3x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.wgsl
index 177cbbf..008384f 100644
--- a/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/d6faec.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_d6faec() -> i32 {
   var res : mat3x2<f16> = transpose(mat2x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d6faec();
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl
index 3e6fec8..27ee30a 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 4, f32>) -> mat<4, 3, f32>
 fn transpose_d8f8ba() -> i32{
   var res: mat4x3<f32> = transpose(mat3x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d8f8ba();
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.dxc.hlsl
index ec904ab..fb9f724 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_d8f8ba() {
   float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.fxc.hlsl
index ec904ab..fb9f724 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_d8f8ba() {
   float4x3 res = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.glsl
index 6fcda98..2a30310 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d8f8ba() {
   mat4x3 res = mat4x3(vec3(1.0f), vec3(1.0f), vec3(1.0f), vec3(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d8f8ba() {
   mat4x3 res = mat4x3(vec3(1.0f), vec3(1.0f), vec3(1.0f), vec3(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.wgsl
index efb670d..94d5bcc 100644
--- a/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/d8f8ba.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_d8f8ba() -> i32 {
   var res : mat4x3<f32> = transpose(mat3x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d8f8ba();
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl
index f795bf2..1482b52 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 2, f32>) -> mat<2, 3, f32>
 fn transpose_ed4bdc() -> i32{
   var res: mat2x3<f32> = transpose(mat3x2<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_ed4bdc();
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.dxc.hlsl
index b68cb9a..3f73262 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_ed4bdc() {
   float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.fxc.hlsl
index b68cb9a..3f73262 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_ed4bdc() {
   float2x3 res = float2x3((1.0f).xxx, (1.0f).xxx);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.glsl
index c3b8c57..ed5bddc 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_ed4bdc() {
   mat2x3 res = mat2x3(vec3(1.0f), vec3(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_ed4bdc() {
   mat2x3 res = mat2x3(vec3(1.0f), vec3(1.0f));
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.wgsl
index 990c9de..f444c22 100644
--- a/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/ed4bdc.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_ed4bdc() -> i32 {
   var res : mat2x3<f32> = transpose(mat3x2<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_ed4bdc();
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl
index 3ca2787..9713308 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 4, f16>) -> mat<4, 2, f16>
 fn transpose_faeb05() -> i32{
   var res: mat4x2<f16> = transpose(mat2x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h));
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_faeb05();
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.dxc.hlsl
index 0ff1c71..f19883b 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_faeb05() {
   matrix<float16_t, 4, 2> res = matrix<float16_t, 4, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_faeb05()));
   return;
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.glsl
index b99f7d9..effb099 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_faeb05() {
   f16mat4x2 res = f16mat4x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_faeb05() {
   f16mat4x2 res = f16mat4x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.wgsl
index a9bd57a..7f891e1 100644
--- a/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/transpose/faeb05.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_faeb05() -> i32 {
   var res : mat4x2<f16> = transpose(mat2x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h));
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_faeb05();
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl
index b8a0486..978f147 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn trunc(vec<3, f16>) -> vec<3, f16>
 fn trunc_103ab8() -> vec3<f16>{
   var res: vec3<f16> = trunc(vec3<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_103ab8();
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.dxc.hlsl
index c659be3..3c6ee7b 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> trunc_103ab8() {
   vector<float16_t, 3> res = (float16_t(1.0h)).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.glsl
index c460282..ca3dd52 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 trunc_103ab8() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 trunc_103ab8() {
   f16vec3 res = f16vec3(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.wgsl
index 3a719ad..0c5cf9e 100644
--- a/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/103ab8.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn trunc_103ab8() -> vec3<f16> {
   var res : vec3<f16> = trunc(vec3<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_103ab8();
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl
index 8f11acc..358be87 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn trunc(vec<3, f32>) -> vec<3, f32>
 fn trunc_562d05() -> vec3<f32>{
   var res: vec3<f32> = trunc(vec3<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_562d05();
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.dxc.hlsl
index 9fe9bf3..71c1f96 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 trunc_562d05() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(trunc_562d05()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.fxc.hlsl
index 9fe9bf3..71c1f96 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 trunc_562d05() {
   float3 res = (1.0f).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(trunc_562d05()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.glsl
index 7635b1f..108984f 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-vec3 trunc_562d05() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 trunc_562d05() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-vec3 trunc_562d05() {
-  vec3 res = vec3(1.0f);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   vec3 inner;
   uint pad;
 } prevent_dce;
 
+vec3 trunc_562d05() {
+  vec3 res = vec3(1.0f);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.wgsl
index a9cdcf4..526a8f0 100644
--- a/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/562d05.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn trunc_562d05() -> vec3<f32> {
   var res : vec3<f32> = trunc(vec3<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_562d05();
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl
index 654f647..53f0d3b 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn trunc(vec<2, f16>) -> vec<2, f16>
 fn trunc_a56109() -> vec2<f16>{
   var res: vec2<f16> = trunc(vec2<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_a56109();
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.dxc.hlsl
index 3ef8b1c..dd41188 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> trunc_a56109() {
   vector<float16_t, 2> res = (float16_t(1.0h)).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.glsl
index 1b0ad00..082f3ce 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 trunc_a56109() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 trunc_a56109() {
   f16vec2 res = f16vec2(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.wgsl
index 962a696..4a640cb 100644
--- a/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/a56109.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn trunc_a56109() -> vec2<f16> {
   var res : vec2<f16> = trunc(vec2<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_a56109();
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl
index 82d0ff3..7ca824b 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn trunc(f16) -> f16
 fn trunc_cc2b0d() -> f16{
   var res: f16 = trunc(1.5h);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_cc2b0d();
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.dxc.hlsl
index e231f4b..8a4d3f4 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t trunc_cc2b0d() {
   float16_t res = float16_t(1.0h);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.glsl
index 262e285..aad8e9f 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t trunc_cc2b0d() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t trunc_cc2b0d() {
   float16_t res = 1.0hf;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.wgsl
index 2aa07cd..08186c8 100644
--- a/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/cc2b0d.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn trunc_cc2b0d() -> f16 {
   var res : f16 = trunc(1.5h);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_cc2b0d();
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl
index 7bd3c90..19930e4 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl
@@ -40,13 +40,14 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn trunc(vec<4, f16>) -> vec<4, f16>
 fn trunc_ce7c17() -> vec4<f16>{
   var res: vec4<f16> = trunc(vec4<f16>(1.5h));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_ce7c17();
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.dxc.hlsl
index 5597479..a1f7d6c 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> trunc_ce7c17() {
   vector<float16_t, 4> res = (float16_t(1.0h)).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.glsl
index bfc0d95..a85534f 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.glsl
@@ -3,15 +3,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 trunc_ce7c17() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -28,15 +28,15 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 trunc_ce7c17() {
   f16vec4 res = f16vec4(1.0hf);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.wgsl
index cf0ec2e..7ea91a5 100644
--- a/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/ce7c17.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn trunc_ce7c17() -> vec4<f16> {
   var res : vec4<f16> = trunc(vec4<f16>(1.5h));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_ce7c17();
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl
index 01c94db..fb542a9 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn trunc(vec<4, f32>) -> vec<4, f32>
 fn trunc_e183aa() -> vec4<f32>{
   var res: vec4<f32> = trunc(vec4<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_e183aa();
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.dxc.hlsl
index be6b2ed..a1777fa 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 trunc_e183aa() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(trunc_e183aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.fxc.hlsl
index be6b2ed..a1777fa 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 trunc_e183aa() {
   float4 res = (1.0f).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(trunc_e183aa()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.glsl
index 7bd2e76..e6d30f4 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 trunc_e183aa() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 trunc_e183aa() {
   vec4 res = vec4(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.wgsl
index c9f416a..0aaab7d 100644
--- a/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/e183aa.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn trunc_e183aa() -> vec4<f32> {
   var res : vec4<f32> = trunc(vec4<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_e183aa();
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl
index 6b162db..92e328f 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn trunc(f32) -> f32
 fn trunc_eb83df() -> f32{
   var res: f32 = trunc(1.5f);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_eb83df();
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.dxc.hlsl
index 921cf33..e680343 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float trunc_eb83df() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(trunc_eb83df()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.fxc.hlsl
index 921cf33..e680343 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float trunc_eb83df() {
   float res = 1.0f;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(trunc_eb83df()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.glsl
index 99377d9..ccc89c5 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float trunc_eb83df() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float trunc_eb83df() {
   float res = 1.0f;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.wgsl
index 5485b59..1344658 100644
--- a/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/eb83df.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn trunc_eb83df() -> f32 {
   var res : f32 = trunc(1.5f);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_eb83df();
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl
index f6b6fcb..0e28d19 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn trunc(vec<2, f32>) -> vec<2, f32>
 fn trunc_f370d3() -> vec2<f32>{
   var res: vec2<f32> = trunc(vec2<f32>(1.5f));
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_f370d3();
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.dxc.hlsl
index 2a02869..9b1c942 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 trunc_f370d3() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(trunc_f370d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.fxc.hlsl
index 2a02869..9b1c942 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 trunc_f370d3() {
   float2 res = (1.0f).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(trunc_f370d3()));
   return;
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.glsl
index dcc3420..a35049e 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 trunc_f370d3() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 trunc_f370d3() {
   vec2 res = vec2(1.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.wgsl
index 795bf0f..fa0572b 100644
--- a/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/trunc/f370d3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn trunc_f370d3() -> vec2<f32> {
   var res : vec2<f32> = trunc(vec2<f32>(1.5f));
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_f370d3();
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl
index dfee298..c16bfe0 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn unpack2x16float(u32) -> vec2<f32>
 fn unpack2x16float_32a5cf() -> vec2<f32>{
   var res: vec2<f32> = unpack2x16float(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16float_32a5cf();
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
index 52983e4..9e453a2 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16float_32a5cf() {
   float2 res = float2(0.00000005960464477539f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
index 52983e4..9e453a2 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16float_32a5cf() {
   float2 res = float2(0.00000005960464477539f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl
index a2cf737..bd039a7 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16float_32a5cf() {
   vec2 res = vec2(0.00000005960464477539f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16float_32a5cf() {
   vec2 res = vec2(0.00000005960464477539f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.wgsl
index 62c7897..b86ae0e 100644
--- a/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack2x16float/32a5cf.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn unpack2x16float_32a5cf() -> vec2<f32> {
   var res : vec2<f32> = unpack2x16float(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16float_32a5cf();
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl
index c5591e8..169d83b 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn unpack2x16snorm(u32) -> vec2<f32>
 fn unpack2x16snorm_b4aea6() -> vec2<f32>{
   var res: vec2<f32> = unpack2x16snorm(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16snorm_b4aea6();
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
index ff271e7..81d101f 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16snorm_b4aea6() {
   float2 res = float2(0.00003051850944757462f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
index ff271e7..81d101f 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16snorm_b4aea6() {
   float2 res = float2(0.00003051850944757462f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index 7aa0692..78737ac 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16snorm_b4aea6() {
   vec2 res = vec2(0.00003051850944757462f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16snorm_b4aea6() {
   vec2 res = vec2(0.00003051850944757462f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
index 7ac2f7a..0d227bb 100644
--- a/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn unpack2x16snorm_b4aea6() -> vec2<f32> {
   var res : vec2<f32> = unpack2x16snorm(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16snorm_b4aea6();
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl
index 57b88cd..d4e7a61 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn unpack2x16unorm(u32) -> vec2<f32>
 fn unpack2x16unorm_7699c0() -> vec2<f32>{
   var res: vec2<f32> = unpack2x16unorm(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16unorm_7699c0();
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
index 349a230..ff12b19 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16unorm_7699c0() {
   float2 res = float2(0.00001525902189314365f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
index 349a230..ff12b19 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16unorm_7699c0() {
   float2 res = float2(0.00001525902189314365f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl
index e73cf2f..ceea2eb 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16unorm_7699c0() {
   vec2 res = vec2(0.00001525902189314365f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16unorm_7699c0() {
   vec2 res = vec2(0.00001525902189314365f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.wgsl
index e6b8552..93d4d0f 100644
--- a/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack2x16unorm/7699c0.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn unpack2x16unorm_7699c0() -> vec2<f32> {
   var res : vec2<f32> = unpack2x16unorm(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16unorm_7699c0();
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl
index bc58c54..0c6c9ad 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn unpack4x8snorm(u32) -> vec4<f32>
 fn unpack4x8snorm_523fb3() -> vec4<f32>{
   var res: vec4<f32> = unpack4x8snorm(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8snorm_523fb3();
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
index b28bbfd..7681573 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8snorm_523fb3() {
   float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
index b28bbfd..7681573 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8snorm_523fb3() {
   float4 res = float4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl
index d8ef052..65b04da 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8snorm_523fb3() {
   vec4 res = vec4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8snorm_523fb3() {
   vec4 res = vec4(0.00787401571869850159f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.wgsl
index 033a6f8..6cc74ee 100644
--- a/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4x8snorm/523fb3.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn unpack4x8snorm_523fb3() -> vec4<f32> {
   var res : vec4<f32> = unpack4x8snorm(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8snorm_523fb3();
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl
index 12afabf..2600861 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl
@@ -35,13 +35,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn unpack4x8unorm(u32) -> vec4<f32>
 fn unpack4x8unorm_750c74() -> vec4<f32>{
   var res: vec4<f32> = unpack4x8unorm(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8unorm_750c74();
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
index 517fba0..e178f7c 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8unorm_750c74() {
   float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
index 517fba0..e178f7c 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8unorm_750c74() {
   float4 res = float4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl
index 1fcbbd0..c405566 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8unorm_750c74() {
   vec4 res = vec4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8unorm_750c74() {
   vec4 res = vec4(0.0039215688593685627f, 0.0f, 0.0f, 0.0f);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.wgsl
index 45bd40e..42dc12d 100644
--- a/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4x8unorm/750c74.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn unpack4x8unorm_750c74() -> vec4<f32> {
   var res : vec4<f32> = unpack4x8unorm(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8unorm_750c74();
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl
index cfcc332..edcfb26 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn unpack4xI8(u32) -> vec4<i32>
 fn unpack4xI8_830900() -> vec4<i32>{
   var res: vec4<i32> = unpack4xI8(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xI8_830900();
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.dxc.hlsl
index 849f7fe..7ff0cd7 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 unpack4xI8_830900() {
   int4 res = int4(1, 0, 0, 0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.fxc.hlsl
index 849f7fe..7ff0cd7 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 unpack4xI8_830900() {
   int4 res = int4(1, 0, 0, 0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.glsl
index 03954ab..999f098 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 unpack4xI8_830900() {
   ivec4 res = ivec4(1, 0, 0, 0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 unpack4xI8_830900() {
   ivec4 res = ivec4(1, 0, 0, 0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.wgsl
index b9096a2..c116afe 100644
--- a/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4xI8/830900.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn unpack4xI8_830900() -> vec4<i32> {
   var res : vec4<i32> = unpack4xI8(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xI8_830900();
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl
index 7a2d9fe..c81c738 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl
@@ -36,13 +36,14 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn unpack4xU8(u32) -> vec4<u32>
 fn unpack4xU8_a5ea55() -> vec4<u32>{
   var res: vec4<u32> = unpack4xU8(1u);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xU8_a5ea55();
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl
index 6a91287..840befc 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 unpack4xU8_a5ea55() {
   uint4 res = uint4(1u, 0u, 0u, 0u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xU8_a5ea55()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl
index 6a91287..840befc 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 unpack4xU8_a5ea55() {
   uint4 res = uint4(1u, 0u, 0u, 0u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xU8_a5ea55()));
   return;
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.glsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.glsl
index 662a5d9..cf6667f 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 unpack4xU8_a5ea55() {
   uvec4 res = uvec4(1u, 0u, 0u, 0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 unpack4xU8_a5ea55() {
   uvec4 res = uvec4(1u, 0u, 0u, 0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.wgsl
index 77c2298..6a51095 100644
--- a/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/unpack4xU8/a5ea55.wgsl.expected.wgsl
@@ -1,10 +1,10 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn unpack4xU8_a5ea55() -> vec4<u32> {
   var res : vec4<u32> = unpack4xU8(1u);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xU8_a5ea55();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl
index 5afb66c..e08b08a 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: u32;
 
 // fn workgroupUniformLoad(ptr<workgroup, u32, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_37307c();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
index ba33e2d..8df71fc 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint workgroupUniformLoad_37307c() {
   uint res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
index ba33e2d..8df71fc 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint workgroupUniformLoad_37307c() {
   uint res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl
index 1789bb2..acca685 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.glsl
@@ -15,15 +15,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint workgroupUniformLoad_37307c() {
   uint res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_37307c();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm
index cd6300b..5c2fb6d 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.wgsl
index a3ae5fa..4cf9f63 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/37307c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : u32;
 
 fn workgroupUniformLoad_37307c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_37307c();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl
index 5303c73..3ff2afb 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 var<workgroup> arg_0: f32;
 
 // fn workgroupUniformLoad(ptr<workgroup, f32, read_write>) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_7a857c();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
index c9283c8..f27f4fb 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float workgroupUniformLoad_7a857c() {
   float res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
index c9283c8..f27f4fb 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float workgroupUniformLoad_7a857c() {
   float res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl
index 24aba9a..e1a03f4 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.glsl
@@ -15,15 +15,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float workgroupUniformLoad_7a857c() {
   float res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_7a857c();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
index bb138ce..8d66d7c 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-      %arg_0 = OpVariable %_ptr_Workgroup_float Workgroup
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+      %arg_0 = OpVariable %_ptr_Workgroup_float Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.wgsl
index 80634c1..cf87252 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/7a857c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 var<workgroup> arg_0 : f32;
 
 fn workgroupUniformLoad_7a857c() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_7a857c();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl
index 59b5a8a..3dde1ef 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: i32;
 
 // fn workgroupUniformLoad(ptr<workgroup, i32, read_write>) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_9d33de();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
index 3642d9a..060939f 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int workgroupUniformLoad_9d33de() {
   int res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
index 3642d9a..060939f 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int workgroupUniformLoad_9d33de() {
   int res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl
index d6367a0..3abdc9e 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.glsl
@@ -15,15 +15,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int workgroupUniformLoad_9d33de() {
   int res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_9d33de();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
index e51ca59..774da88 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.wgsl
index a8054f7..f5e1d46 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/9d33de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : i32;
 
 fn workgroupUniformLoad_9d33de() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_9d33de();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl
index 72aaf87..08feff3 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl
@@ -39,6 +39,9 @@
 
 
 enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 var<workgroup> arg_0: f16;
 
 // fn workgroupUniformLoad(ptr<workgroup, f16, read_write>) -> f16
@@ -46,8 +49,6 @@
   var res: f16 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_e07d08();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
index 2b8a2d8..c008c6e 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t workgroupUniformLoad_e07d08() {
   float16_t res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl
index ab9a5b6..aee3e34 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.glsl
@@ -16,15 +16,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t workgroupUniformLoad_e07d08() {
   float16_t res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_e07d08();
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
index db2dec5..2f0c55a 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
@@ -11,10 +11,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -32,11 +32,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
        %half = OpTypeFloat 16
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-      %arg_0 = OpVariable %_ptr_Workgroup_half Workgroup
 %prevent_dce_block = OpTypeStruct %half
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+      %arg_0 = OpVariable %_ptr_Workgroup_half Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.wgsl
index 8307318..5f9092d 100644
--- a/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/workgroupUniformLoad/e07d08.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 var<workgroup> arg_0 : f16;
 
 fn workgroupUniformLoad_e07d08() -> f16 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_e07d08();
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl b/test/tint/builtins/gen/var/abs/002533.wgsl
index 485b656..f6317d5 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn abs(vec<4, f32>) -> vec<4, f32>
 fn abs_002533() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_002533();
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.dxc.hlsl
index aa07483..4d62ae5 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 abs_002533() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_002533()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.fxc.hlsl
index aa07483..4d62ae5 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 abs_002533() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_002533()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.glsl
index e5575ec..11a4ad7 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 abs_002533() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 abs_002533() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.wgsl
index 1056216..9bc2d0c 100644
--- a/test/tint/builtins/gen/var/abs/002533.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/002533.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn abs_002533() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_002533();
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl b/test/tint/builtins/gen/var/abs/005174.wgsl
index 86f9c78..025b9c9 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn abs(vec<3, f32>) -> vec<3, f32>
 fn abs_005174() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_005174();
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.dxc.hlsl
index 268f7ca..85d1986 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 abs_005174() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_005174()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.fxc.hlsl
index 268f7ca..85d1986 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 abs_005174() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_005174()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.glsl
index a9bd4e7..c1257f5 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 abs_005174() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 abs_005174() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.wgsl
index 241d6a5..5786098 100644
--- a/test/tint/builtins/gen/var/abs/005174.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/005174.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn abs_005174() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_005174();
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl
index 8282e7e..586b8f9 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn abs(vec<4, u32>) -> vec<4, u32>
 fn abs_1ce782() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1ce782();
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.dxc.hlsl
index c1266af..dadc26e 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 abs_1ce782() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_1ce782()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.fxc.hlsl
index c1266af..dadc26e 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 abs_1ce782() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_1ce782()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.glsl
index c32cd8a..69a4fd8 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 abs_1ce782() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 abs_1ce782() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.wgsl
index 6950844..7b404c0 100644
--- a/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/1ce782.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn abs_1ce782() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1ce782();
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl
index dada3cd..002c717 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn abs(vec<2, f32>) -> vec<2, f32>
 fn abs_1e9d53() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1e9d53();
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.dxc.hlsl
index 57f4ee7..c82a8e2 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 abs_1e9d53() {
   float2 arg_0 = (1.0f).xx;
   float2 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_1e9d53()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.fxc.hlsl
index 57f4ee7..c82a8e2 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 abs_1e9d53() {
   float2 arg_0 = (1.0f).xx;
   float2 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_1e9d53()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.glsl
index 5e20f8a..47c7901 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 abs_1e9d53() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 abs_1e9d53() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.wgsl
index 4ed7648..58d52ec 100644
--- a/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/1e9d53.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn abs_1e9d53() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_1e9d53();
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl
index 6bacc1d..0458774 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn abs(vec<3, f16>) -> vec<3, f16>
 fn abs_421ca3() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_421ca3();
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.dxc.hlsl
index 34731ff..73cdf19 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> abs_421ca3() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, abs_421ca3());
   return;
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.glsl
index 5e0c07c..a8e710b 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 abs_421ca3() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 abs_421ca3() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.wgsl
index 1ef3ba4..75751b2 100644
--- a/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/421ca3.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn abs_421ca3() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_421ca3();
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl
index 2d6d04b..2dca714 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn abs(u32) -> u32
 fn abs_467cd1() -> u32{
   var arg_0 = 1u;
   var res: u32 = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_467cd1();
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.dxc.hlsl
index 861a6fc..a45b10a 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint abs_467cd1() {
   uint arg_0 = 1u;
   uint res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_467cd1()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.fxc.hlsl
index 861a6fc..a45b10a 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint abs_467cd1() {
   uint arg_0 = 1u;
   uint res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_467cd1()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.glsl
index e34da6a..dc305e5 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint abs_467cd1() {
   uint arg_0 = 1u;
   uint res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint abs_467cd1() {
   uint arg_0 = 1u;
   uint res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.wgsl
index 721560a..432553f 100644
--- a/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/467cd1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn abs_467cd1() -> u32 {
   var arg_0 = 1u;
   var res : u32 = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_467cd1();
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl
index 7aec814..763854f 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn abs(i32) -> i32
 fn abs_4ad288() -> i32{
   var arg_0 = 1i;
   var res: i32 = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_4ad288();
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.dxc.hlsl
index fea57a2..0ab8878 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int abs_4ad288() {
   int arg_0 = 1;
   int res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_4ad288()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.fxc.hlsl
index fea57a2..0ab8878 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int abs_4ad288() {
   int arg_0 = 1;
   int res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_4ad288()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.glsl
index 66214ac..bdd6644 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int abs_4ad288() {
   int arg_0 = 1;
   int res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int abs_4ad288() {
   int arg_0 = 1;
   int res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.wgsl
index fe32c9a..b4cfcd9 100644
--- a/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/4ad288.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn abs_4ad288() -> i32 {
   var arg_0 = 1i;
   var res : i32 = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_4ad288();
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl b/test/tint/builtins/gen/var/abs/538d29.wgsl
index 02be11d..ad59e8f 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn abs(vec<4, f16>) -> vec<4, f16>
 fn abs_538d29() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_538d29();
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.dxc.hlsl
index 04489c7..70cf8f8 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> abs_538d29() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, abs_538d29());
   return;
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.glsl
index 17b9891..4bc4a5e 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 abs_538d29() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 abs_538d29() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.wgsl
index 2ab6f0e..996ea91 100644
--- a/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/538d29.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn abs_538d29() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_538d29();
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl
index ba25607..04103da 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn abs(vec<3, i32>) -> vec<3, i32>
 fn abs_5ad50a() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ad50a();
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.dxc.hlsl
index 4900a05..c21d8a7 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 abs_5ad50a() {
   int3 arg_0 = (1).xxx;
   int3 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_5ad50a()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.fxc.hlsl
index 4900a05..c21d8a7 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 abs_5ad50a() {
   int3 arg_0 = (1).xxx;
   int3 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_5ad50a()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.glsl
index 45f6ca2..4dc4494 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 abs_5ad50a() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 abs_5ad50a() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.wgsl
index a29a497..697e728 100644
--- a/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/5ad50a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn abs_5ad50a() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ad50a();
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl
index c9fc677..72f2806 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn abs(vec<2, f16>) -> vec<2, f16>
 fn abs_5ae4fe() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ae4fe();
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.dxc.hlsl
index a37adea..00840b5 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> abs_5ae4fe() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, abs_5ae4fe());
   return;
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.glsl
index 0d1a94a..a00b9ff 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 abs_5ae4fe() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 abs_5ae4fe() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.wgsl
index f44e812..6644b05 100644
--- a/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/5ae4fe.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn abs_5ae4fe() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_5ae4fe();
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl b/test/tint/builtins/gen/var/abs/7326de.wgsl
index 9663333..1d4f8d4 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn abs(vec<3, u32>) -> vec<3, u32>
 fn abs_7326de() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7326de();
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.dxc.hlsl
index 5d8de56..74f07db 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 abs_7326de() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_7326de()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.fxc.hlsl
index 5d8de56..74f07db 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 abs_7326de() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(abs_7326de()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.glsl
index 1e0895a..bc6a9f6 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 abs_7326de() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 abs_7326de() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.wgsl
index 8f337f8..876b8a7 100644
--- a/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/7326de.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn abs_7326de() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7326de();
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl
index b918f06..13343be 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn abs(vec<2, u32>) -> vec<2, u32>
 fn abs_7f28e6() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7f28e6();
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.dxc.hlsl
index 67e7dbf..092792e 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 abs_7f28e6() {
   uint2 arg_0 = (1u).xx;
   uint2 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7f28e6()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.fxc.hlsl
index 67e7dbf..092792e 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 abs_7f28e6() {
   uint2 arg_0 = (1u).xx;
   uint2 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7f28e6()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.glsl
index a1788d5..16458b7 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 abs_7f28e6() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 abs_7f28e6() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.wgsl
index 2d3ea55..c32c850 100644
--- a/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/7f28e6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn abs_7f28e6() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7f28e6();
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl
index 2c00ce2..66f98f8 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn abs(vec<2, i32>) -> vec<2, i32>
 fn abs_7faa9e() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7faa9e();
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.dxc.hlsl
index da2dfa4..965dc9e 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 abs_7faa9e() {
   int2 arg_0 = (1).xx;
   int2 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7faa9e()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.fxc.hlsl
index da2dfa4..965dc9e 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 abs_7faa9e() {
   int2 arg_0 = (1).xx;
   int2 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(abs_7faa9e()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.glsl
index 80620da..b1261b3 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 abs_7faa9e() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 abs_7faa9e() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.wgsl
index e5693af..a424601 100644
--- a/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/7faa9e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn abs_7faa9e() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_7faa9e();
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl
index c431b41..7a98447 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn abs(vec<4, i32>) -> vec<4, i32>
 fn abs_9c80a6() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_9c80a6();
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.dxc.hlsl
index dbf5a4e..ba9e691 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 abs_9c80a6() {
   int4 arg_0 = (1).xxxx;
   int4 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_9c80a6()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.fxc.hlsl
index dbf5a4e..ba9e691 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 abs_9c80a6() {
   int4 arg_0 = (1).xxxx;
   int4 res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(abs_9c80a6()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.glsl
index f91013e..caa8890 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 abs_9c80a6() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 abs_9c80a6() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.wgsl
index d8824a3..a980705 100644
--- a/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/9c80a6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn abs_9c80a6() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_9c80a6();
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl b/test/tint/builtins/gen/var/abs/b96037.wgsl
index f2d2bcc..3bb4122 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn abs(f32) -> f32
 fn abs_b96037() -> f32{
   var arg_0 = 1.f;
   var res: f32 = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_b96037();
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.dxc.hlsl
index 07aa912..c7c51f2 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float abs_b96037() {
   float arg_0 = 1.0f;
   float res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_b96037()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.fxc.hlsl
index 07aa912..c7c51f2 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float abs_b96037() {
   float arg_0 = 1.0f;
   float res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(abs_b96037()));
   return;
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.glsl
index db2537b..357ef6e 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float abs_b96037() {
   float arg_0 = 1.0f;
   float res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float abs_b96037() {
   float arg_0 = 1.0f;
   float res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.wgsl
index 5470332..2e57d93 100644
--- a/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/b96037.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn abs_b96037() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_b96037();
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl
index 84694df..6c0976c 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn abs(f16) -> f16
 fn abs_fd247f() -> f16{
   var arg_0 = 1.h;
   var res: f16 = abs(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_fd247f();
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.dxc.hlsl
index b2d68bb..c139ce1 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t abs_fd247f() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = abs(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, abs_fd247f());
   return;
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.glsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.glsl
index 402eb52..bef525b 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t abs_fd247f() {
   float16_t arg_0 = 1.0hf;
   float16_t res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t abs_fd247f() {
   float16_t arg_0 = 1.0hf;
   float16_t res = abs(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.wgsl
index b2ed1df..eae0f7c 100644
--- a/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/abs/fd247f.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn abs_fd247f() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = abs(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = abs_fd247f();
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl b/test/tint/builtins/gen/var/acos/004aff.wgsl
index 82e48e6..e8856ab 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn acos(vec<2, f16>) -> vec<2, f16>
 fn acos_004aff() -> vec2<f16>{
   var arg_0 = vec2<f16>(0.96891242171h);
   var res: vec2<f16> = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_004aff();
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.dxc.hlsl
index 72aed91..5e66935 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> acos_004aff() {
   vector<float16_t, 2> arg_0 = (float16_t(0.96875h)).xx;
   vector<float16_t, 2> res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, acos_004aff());
   return;
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.glsl
index efd915e..75b5c8f 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acos_004aff() {
   f16vec2 arg_0 = f16vec2(0.96875hf);
   f16vec2 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acos_004aff() {
   f16vec2 arg_0 = f16vec2(0.96875hf);
   f16vec2 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.wgsl
index 64503cd..434cfc4 100644
--- a/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/004aff.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn acos_004aff() -> vec2<f16> {
   var arg_0 = vec2<f16>(0.96875h);
   var res : vec2<f16> = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_004aff();
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl b/test/tint/builtins/gen/var/acos/203628.wgsl
index f854686..aea4b0b 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn acos(vec<4, f16>) -> vec<4, f16>
 fn acos_203628() -> vec4<f16>{
   var arg_0 = vec4<f16>(0.96891242171h);
   var res: vec4<f16> = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_203628();
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.dxc.hlsl
index 5812816..c5c5793 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> acos_203628() {
   vector<float16_t, 4> arg_0 = (float16_t(0.96875h)).xxxx;
   vector<float16_t, 4> res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, acos_203628());
   return;
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.glsl
index 90ba278..68f4927 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acos_203628() {
   f16vec4 arg_0 = f16vec4(0.96875hf);
   f16vec4 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acos_203628() {
   f16vec4 arg_0 = f16vec4(0.96875hf);
   f16vec4 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.wgsl
index 805f5fb..bdb4cb0 100644
--- a/test/tint/builtins/gen/var/acos/203628.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/203628.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn acos_203628() -> vec4<f16> {
   var arg_0 = vec4<f16>(0.96875h);
   var res : vec4<f16> = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_203628();
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl
index 3fa2495..c264e24 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn acos(f16) -> f16
 fn acos_303e3d() -> f16{
   var arg_0 = 0.96891242171h;
   var res: f16 = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_303e3d();
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.dxc.hlsl
index d0a743e..cadae83 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t acos_303e3d() {
   float16_t arg_0 = float16_t(0.96875h);
   float16_t res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, acos_303e3d());
   return;
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.glsl
index 6be912b..b91009c 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acos_303e3d() {
   float16_t arg_0 = 0.96875hf;
   float16_t res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acos_303e3d() {
   float16_t arg_0 = 0.96875hf;
   float16_t res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.wgsl
index 58c7e67..e94f9ca 100644
--- a/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/303e3d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn acos_303e3d() -> f16 {
   var arg_0 = 0.96875h;
   var res : f16 = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_303e3d();
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl b/test/tint/builtins/gen/var/acos/489247.wgsl
index 736a483..93fcdec 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn acos(f32) -> f32
 fn acos_489247() -> f32{
   var arg_0 = 0.96891242171f;
   var res: f32 = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_489247();
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl
index 11e5763..1b94d56 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acos_489247() {
   float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acos_489247()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl
index 11e5763..1b94d56 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acos_489247() {
   float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acos_489247()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl
index acf4779..4b9eeb9 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acos_489247() {
   float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acos_489247() {
   float arg_0 = 0.96891242265701293945f;
   float res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl
index 4ae4b24..e090969 100644
--- a/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/489247.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn acos_489247() -> f32 {
   var arg_0 = 0.96891242265701293945f;
   var res : f32 = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_489247();
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl
index eda7556..fbf1b44 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn acos(vec<4, f32>) -> vec<4, f32>
 fn acos_8e2acf() -> vec4<f32>{
   var arg_0 = vec4<f32>(0.96891242171f);
   var res: vec4<f32> = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_8e2acf();
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl
index ce19a06..7ee1d5b 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acos_8e2acf() {
   float4 arg_0 = (0.96891242265701293945f).xxxx;
   float4 res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acos_8e2acf()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl
index ce19a06..7ee1d5b 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acos_8e2acf() {
   float4 arg_0 = (0.96891242265701293945f).xxxx;
   float4 res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acos_8e2acf()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl
index 6214157..3739e2d 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acos_8e2acf() {
   vec4 arg_0 = vec4(0.96891242265701293945f);
   vec4 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acos_8e2acf() {
   vec4 arg_0 = vec4(0.96891242265701293945f);
   vec4 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl
index 5fdc8ef..ce5286d 100644
--- a/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/8e2acf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn acos_8e2acf() -> vec4<f32> {
   var arg_0 = vec4<f32>(0.96891242265701293945f);
   var res : vec4<f32> = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_8e2acf();
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl
index 57babc5..94d9679 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn acos(vec<3, f32>) -> vec<3, f32>
 fn acos_a610c4() -> vec3<f32>{
   var arg_0 = vec3<f32>(0.96891242171f);
   var res: vec3<f32> = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_a610c4();
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl
index c72d871..b1a8f59 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acos_a610c4() {
   float3 arg_0 = (0.96891242265701293945f).xxx;
   float3 res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acos_a610c4()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl
index c72d871..b1a8f59 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acos_a610c4() {
   float3 arg_0 = (0.96891242265701293945f).xxx;
   float3 res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acos_a610c4()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl
index f4ae754..1fefc23 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 acos_a610c4() {
   vec3 arg_0 = vec3(0.96891242265701293945f);
   vec3 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 acos_a610c4() {
   vec3 arg_0 = vec3(0.96891242265701293945f);
   vec3 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl
index c888bd9..6e0f8e3 100644
--- a/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/a610c4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn acos_a610c4() -> vec3<f32> {
   var arg_0 = vec3<f32>(0.96891242265701293945f);
   var res : vec3<f32> = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_a610c4();
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl
index 19baff1..9f3be82 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn acos(vec<2, f32>) -> vec<2, f32>
 fn acos_dfc915() -> vec2<f32>{
   var arg_0 = vec2<f32>(0.96891242171f);
   var res: vec2<f32> = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_dfc915();
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl
index 94abf2f..0d4d8e2 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acos_dfc915() {
   float2 arg_0 = (0.96891242265701293945f).xx;
   float2 res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acos_dfc915()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl
index 94abf2f..0d4d8e2 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acos_dfc915() {
   float2 arg_0 = (0.96891242265701293945f).xx;
   float2 res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acos_dfc915()));
   return;
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl
index e3d211a..6d8fbce 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acos_dfc915() {
   vec2 arg_0 = vec2(0.96891242265701293945f);
   vec2 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acos_dfc915() {
   vec2 arg_0 = vec2(0.96891242265701293945f);
   vec2 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl
index 0017b54..339b7cc 100644
--- a/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/dfc915.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn acos_dfc915() -> vec2<f32> {
   var arg_0 = vec2<f32>(0.96891242265701293945f);
   var res : vec2<f32> = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_dfc915();
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl b/test/tint/builtins/gen/var/acos/f47057.wgsl
index 733a37e..0b8ea8c 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn acos(vec<3, f16>) -> vec<3, f16>
 fn acos_f47057() -> vec3<f16>{
   var arg_0 = vec3<f16>(0.96891242171h);
   var res: vec3<f16> = acos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_f47057();
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.dxc.hlsl
index 7f62a15..a48af58 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> acos_f47057() {
   vector<float16_t, 3> arg_0 = (float16_t(0.96875h)).xxx;
   vector<float16_t, 3> res = acos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, acos_f47057());
   return;
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.glsl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.glsl
index eef46e6..7f3864e 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acos_f47057() {
   f16vec3 arg_0 = f16vec3(0.96875hf);
   f16vec3 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acos_f47057() {
   f16vec3 arg_0 = f16vec3(0.96875hf);
   f16vec3 res = acos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.wgsl
index c48ba67..869e3cd 100644
--- a/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acos/f47057.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn acos_f47057() -> vec3<f16> {
   var arg_0 = vec3<f16>(0.96875h);
   var res : vec3<f16> = acos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acos_f47057();
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl
index 29eb1a2..e92e71d 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn acosh(vec<2, f16>) -> vec<2, f16>
 fn acosh_5f49d8() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.5430806348h);
   var res: vec2<f16> = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_5f49d8();
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl
index 82c29c9..10c28e7 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> acosh_5f49d8() {
   vector<float16_t, 2> arg_0 = (float16_t(1.54296875h)).xx;
   vector<float16_t, 2> res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, acosh_5f49d8());
   return;
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl
index 023f496..f6f93e4 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_select(acosh(x), f16vec2(0.0hf), lessThan(x, f16vec2(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acosh_5f49d8() {
   f16vec2 arg_0 = f16vec2(1.54296875hf);
   f16vec2 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -47,16 +47,16 @@
   return tint_select(acosh(x), f16vec2(0.0hf), lessThan(x, f16vec2(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 acosh_5f49d8() {
   f16vec2 arg_0 = f16vec2(1.54296875hf);
   f16vec2 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl
index c8d95a8..39eabed 100644
--- a/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/5f49d8.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn acosh_5f49d8() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.54296875h);
   var res : vec2<f16> = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_5f49d8();
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl b/test/tint/builtins/gen/var/acosh/640883.wgsl
index 12bb0f8..7cb01ce 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn acosh(vec<2, f32>) -> vec<2, f32>
 fn acosh_640883() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.5430806348f);
   var res: vec2<f32> = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_640883();
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl
index 583ae79..f4b30cb 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acosh_640883() {
   float2 arg_0 = (1.54308068752288818359f).xx;
   float2 res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acosh_640883()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl
index 583ae79..f4b30cb 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 acosh_640883() {
   float2 arg_0 = (1.54308068752288818359f).xx;
   float2 res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(acosh_640883()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl
index 98d0987..d2a1cf1 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.glsl
@@ -11,16 +11,16 @@
   return tint_select(acosh(x), vec2(0.0f), lessThan(x, vec2(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acosh_640883() {
   vec2 arg_0 = vec2(1.54308068752288818359f);
   vec2 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -45,16 +45,16 @@
   return tint_select(acosh(x), vec2(0.0f), lessThan(x, vec2(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 acosh_640883() {
   vec2 arg_0 = vec2(1.54308068752288818359f);
   vec2 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl
index 32c237d..3deddb2 100644
--- a/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/640883.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn acosh_640883() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.54308068752288818359f);
   var res : vec2<f32> = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_640883();
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl
index 6b16f6f..2272902 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn acosh(f16) -> f16
 fn acosh_a37dfe() -> f16{
   var arg_0 = 1.5430806348h;
   var res: f16 = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_a37dfe();
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl
index 5037b94..883cdb2 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t acosh_a37dfe() {
   float16_t arg_0 = float16_t(1.54296875h);
   float16_t res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, acosh_a37dfe());
   return;
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl
index 89d9dfe..d85f988 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return ((x < 1.0hf) ? 0.0hf : acosh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acosh_a37dfe() {
   float16_t arg_0 = 1.54296875hf;
   float16_t res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -37,16 +37,16 @@
   return ((x < 1.0hf) ? 0.0hf : acosh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t acosh_a37dfe() {
   float16_t arg_0 = 1.54296875hf;
   float16_t res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl
index 12c8ebe..b1ad130 100644
--- a/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/a37dfe.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn acosh_a37dfe() -> f16 {
   var arg_0 = 1.54296875h;
   var res : f16 = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_a37dfe();
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl
index bb73d72..17cddc7 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn acosh(vec<4, f32>) -> vec<4, f32>
 fn acosh_d51ccb() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.5430806348f);
   var res: vec4<f32> = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_d51ccb();
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl
index 97b221d..2bcdd32 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acosh_d51ccb() {
   float4 arg_0 = (1.54308068752288818359f).xxxx;
   float4 res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl
index 97b221d..2bcdd32 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 acosh_d51ccb() {
   float4 arg_0 = (1.54308068752288818359f).xxxx;
   float4 res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(acosh_d51ccb()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl
index 0625b62..eeb845f 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.glsl
@@ -11,16 +11,16 @@
   return tint_select(acosh(x), vec4(0.0f), lessThan(x, vec4(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acosh_d51ccb() {
   vec4 arg_0 = vec4(1.54308068752288818359f);
   vec4 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -45,16 +45,16 @@
   return tint_select(acosh(x), vec4(0.0f), lessThan(x, vec4(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 acosh_d51ccb() {
   vec4 arg_0 = vec4(1.54308068752288818359f);
   vec4 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl
index 40a7bdc..564cf97 100644
--- a/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/d51ccb.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn acosh_d51ccb() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.54308068752288818359f);
   var res : vec4<f32> = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_d51ccb();
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl
index 7d876e2..1bba4b3 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn acosh(vec<4, f16>) -> vec<4, f16>
 fn acosh_de60d8() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.5430806348h);
   var res: vec4<f16> = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_de60d8();
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl
index 883e6ba..e7d8188 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> acosh_de60d8() {
   vector<float16_t, 4> arg_0 = (float16_t(1.54296875h)).xxxx;
   vector<float16_t, 4> res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, acosh_de60d8());
   return;
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl
index bd07ede..c8c32ae 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_select(acosh(x), f16vec4(0.0hf), lessThan(x, f16vec4(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acosh_de60d8() {
   f16vec4 arg_0 = f16vec4(1.54296875hf);
   f16vec4 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -47,16 +47,16 @@
   return tint_select(acosh(x), f16vec4(0.0hf), lessThan(x, f16vec4(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 acosh_de60d8() {
   f16vec4 arg_0 = f16vec4(1.54296875hf);
   f16vec4 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl
index 086977e..efc78e9 100644
--- a/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/de60d8.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn acosh_de60d8() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.54296875h);
   var res : vec4<f16> = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_de60d8();
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl
index f00e0c4..a18d2a8 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn acosh(vec<3, f32>) -> vec<3, f32>
 fn acosh_e38f5c() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.5430806348f);
   var res: vec3<f32> = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_e38f5c();
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl
index 2cdaec6..190b22a 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acosh_e38f5c() {
   float3 arg_0 = (1.54308068752288818359f).xxx;
   float3 res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl
index 2cdaec6..190b22a 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 acosh_e38f5c() {
   float3 arg_0 = (1.54308068752288818359f).xxx;
   float3 res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(acosh_e38f5c()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl
index facc5a8..d7e802a 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.glsl
@@ -11,17 +11,17 @@
   return tint_select(acosh(x), vec3(0.0f), lessThan(x, vec3(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 acosh_e38f5c() {
   vec3 arg_0 = vec3(1.54308068752288818359f);
   vec3 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -46,17 +46,17 @@
   return tint_select(acosh(x), vec3(0.0f), lessThan(x, vec3(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 acosh_e38f5c() {
   vec3 arg_0 = vec3(1.54308068752288818359f);
   vec3 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl
index 6e36398..235ded22 100644
--- a/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/e38f5c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn acosh_e38f5c() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.54308068752288818359f);
   var res : vec3<f32> = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_e38f5c();
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl
index f9849e3..de997ef 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn acosh(f32) -> f32
 fn acosh_ecf2d1() -> f32{
   var arg_0 = 1.5430806348f;
   var res: f32 = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_ecf2d1();
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl
index f68df7f..13216a6 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acosh_ecf2d1() {
   float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl
index f68df7f..13216a6 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float acosh_ecf2d1() {
   float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(acosh_ecf2d1()));
   return;
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl
index 7e978a7..adde42f 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.glsl
@@ -6,16 +6,16 @@
   return ((x < 1.0f) ? 0.0f : acosh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acosh_ecf2d1() {
   float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -35,16 +35,16 @@
   return ((x < 1.0f) ? 0.0f : acosh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float acosh_ecf2d1() {
   float arg_0 = 1.54308068752288818359f;
   float res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl
index 134aa82..f79a9ef 100644
--- a/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/ecf2d1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn acosh_ecf2d1() -> f32 {
   var arg_0 = 1.54308068752288818359f;
   var res : f32 = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_ecf2d1();
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl
index 4a09701..759f37a 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn acosh(vec<3, f16>) -> vec<3, f16>
 fn acosh_f56574() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.5430806348h);
   var res: vec3<f16> = acosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_f56574();
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl
index a197c61..4eceb00 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) - float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> acosh_f56574() {
   vector<float16_t, 3> arg_0 = (float16_t(1.54296875h)).xxx;
   vector<float16_t, 3> res = tint_acosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, acosh_f56574());
   return;
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl
index a802ddc..f2a70da 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_select(acosh(x), f16vec3(0.0hf), lessThan(x, f16vec3(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acosh_f56574() {
   f16vec3 arg_0 = f16vec3(1.54296875hf);
   f16vec3 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -47,16 +47,16 @@
   return tint_select(acosh(x), f16vec3(0.0hf), lessThan(x, f16vec3(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 acosh_f56574() {
   f16vec3 arg_0 = f16vec3(1.54296875hf);
   f16vec3 res = tint_acosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl
index 593cdc1..c9c808d 100644
--- a/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/acosh/f56574.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn acosh_f56574() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.54296875h);
   var res : vec3<f16> = acosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = acosh_f56574();
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl b/test/tint/builtins/gen/var/all/353d6a.wgsl
index 7731812..06fd697 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(bool) -> bool
 fn all_353d6a() -> i32{
   var arg_0 = true;
   var res: bool = all(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_353d6a();
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.dxc.hlsl
index fd0a20b..5ce7181 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_353d6a() {
   bool arg_0 = true;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_353d6a()));
   return;
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.fxc.hlsl
index fd0a20b..5ce7181 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_353d6a() {
   bool arg_0 = true;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_353d6a()));
   return;
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.glsl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.glsl
index 185e3ad..24e5968 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_353d6a() {
   bool arg_0 = true;
   bool res = arg_0;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_353d6a() {
   bool arg_0 = true;
   bool res = arg_0;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.wgsl
index 8192c15..428d7d1 100644
--- a/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/all/353d6a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_353d6a() -> i32 {
   var arg_0 = true;
   var res : bool = all(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_353d6a();
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl b/test/tint/builtins/gen/var/all/986c7b.wgsl
index 7ae6b3b..c9ecc5d 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(vec<4, bool>) -> bool
 fn all_986c7b() -> i32{
   var arg_0 = vec4<bool>(true);
   var res: bool = all(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_986c7b();
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.dxc.hlsl
index e9f024f..7d66a69 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_986c7b() {
   bool4 arg_0 = (true).xxxx;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_986c7b()));
   return;
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.fxc.hlsl
index e9f024f..7d66a69 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_986c7b() {
   bool4 arg_0 = (true).xxxx;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_986c7b()));
   return;
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.glsl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.glsl
index 9bbd6c9..a586508 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_986c7b() {
   bvec4 arg_0 = bvec4(true);
   bool res = all(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_986c7b() {
   bvec4 arg_0 = bvec4(true);
   bool res = all(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.wgsl
index 1e65aef..946d471 100644
--- a/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/all/986c7b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_986c7b() -> i32 {
   var arg_0 = vec4<bool>(true);
   var res : bool = all(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_986c7b();
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl
index a0d9701..902ec40 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(vec<3, bool>) -> bool
 fn all_bd2dba() -> i32{
   var arg_0 = vec3<bool>(true);
   var res: bool = all(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_bd2dba();
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.dxc.hlsl
index d70d204..d0cf123 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_bd2dba() {
   bool3 arg_0 = (true).xxx;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_bd2dba()));
   return;
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.fxc.hlsl
index d70d204..d0cf123 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_bd2dba() {
   bool3 arg_0 = (true).xxx;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_bd2dba()));
   return;
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.glsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.glsl
index a9f7507..2d72edc 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_bd2dba() {
   bvec3 arg_0 = bvec3(true);
   bool res = all(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_bd2dba() {
   bvec3 arg_0 = bvec3(true);
   bool res = all(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.wgsl
index aa86f5c..66626dd 100644
--- a/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/all/bd2dba.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_bd2dba() -> i32 {
   var arg_0 = vec3<bool>(true);
   var res : bool = all(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_bd2dba();
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl b/test/tint/builtins/gen/var/all/f46790.wgsl
index 7eea38c..5963653 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn all(vec<2, bool>) -> bool
 fn all_f46790() -> i32{
   var arg_0 = vec2<bool>(true);
   var res: bool = all(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_f46790();
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.dxc.hlsl
index 02f5f12..bab80b2 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_f46790() {
   bool2 arg_0 = (true).xx;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_f46790()));
   return;
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.fxc.hlsl
index 02f5f12..bab80b2 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int all_f46790() {
   bool2 arg_0 = (true).xx;
   bool res = all(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(all_f46790()));
   return;
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.glsl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.glsl
index 1e47da4..f28a892 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_f46790() {
   bvec2 arg_0 = bvec2(true);
   bool res = all(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int all_f46790() {
   bvec2 arg_0 = bvec2(true);
   bool res = all(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.wgsl b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.wgsl
index 4f906c1..7e966ea 100644
--- a/test/tint/builtins/gen/var/all/f46790.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/all/f46790.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn all_f46790() -> i32 {
   var arg_0 = vec2<bool>(true);
   var res : bool = all(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = all_f46790();
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl b/test/tint/builtins/gen/var/any/083428.wgsl
index 7257118..2476802 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(vec<4, bool>) -> bool
 fn any_083428() -> i32{
   var arg_0 = vec4<bool>(true);
   var res: bool = any(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_083428();
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.dxc.hlsl
index 5e304c6..6b1b51c 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_083428() {
   bool4 arg_0 = (true).xxxx;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_083428()));
   return;
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.fxc.hlsl
index 5e304c6..6b1b51c 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_083428() {
   bool4 arg_0 = (true).xxxx;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_083428()));
   return;
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.glsl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.glsl
index 2dc3561..14003fb 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_083428() {
   bvec4 arg_0 = bvec4(true);
   bool res = any(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_083428() {
   bvec4 arg_0 = bvec4(true);
   bool res = any(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/any/083428.wgsl.expected.wgsl b/test/tint/builtins/gen/var/any/083428.wgsl.expected.wgsl
index c16caa9..f836625 100644
--- a/test/tint/builtins/gen/var/any/083428.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/any/083428.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_083428() -> i32 {
   var arg_0 = vec4<bool>(true);
   var res : bool = any(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_083428();
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl
index c3ccab4..6256939 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(vec<2, bool>) -> bool
 fn any_0e3e58() -> i32{
   var arg_0 = vec2<bool>(true);
   var res: bool = any(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_0e3e58();
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.dxc.hlsl
index e5862bd..5473d0e 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_0e3e58() {
   bool2 arg_0 = (true).xx;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_0e3e58()));
   return;
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.fxc.hlsl
index e5862bd..5473d0e 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_0e3e58() {
   bool2 arg_0 = (true).xx;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_0e3e58()));
   return;
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.glsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.glsl
index 1f4271c..ed860af 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_0e3e58() {
   bvec2 arg_0 = bvec2(true);
   bool res = any(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_0e3e58() {
   bvec2 arg_0 = bvec2(true);
   bool res = any(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.wgsl b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.wgsl
index 59dfcf1..9d2b923 100644
--- a/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/any/0e3e58.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_0e3e58() -> i32 {
   var arg_0 = vec2<bool>(true);
   var res : bool = any(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_0e3e58();
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl
index cfc9dd0..28d3162 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(bool) -> bool
 fn any_2ab91a() -> i32{
   var arg_0 = true;
   var res: bool = any(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_2ab91a();
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.dxc.hlsl
index f288445..2c829a3 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_2ab91a() {
   bool arg_0 = true;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_2ab91a()));
   return;
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.fxc.hlsl
index f288445..2c829a3 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_2ab91a() {
   bool arg_0 = true;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_2ab91a()));
   return;
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.glsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.glsl
index 4cdda4f..1264524 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_2ab91a() {
   bool arg_0 = true;
   bool res = arg_0;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_2ab91a() {
   bool arg_0 = true;
   bool res = arg_0;
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.wgsl
index e75dddb..7aac41f 100644
--- a/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/any/2ab91a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_2ab91a() -> i32 {
   var arg_0 = true;
   var res : bool = any(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_2ab91a();
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl b/test/tint/builtins/gen/var/any/e755c1.wgsl
index c4c8943..374ecc5 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn any(vec<3, bool>) -> bool
 fn any_e755c1() -> i32{
   var arg_0 = vec3<bool>(true);
   var res: bool = any(arg_0);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_e755c1();
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.dxc.hlsl
index e6a9804..265be1d 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_e755c1() {
   bool3 arg_0 = (true).xxx;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_e755c1()));
   return;
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.fxc.hlsl
index e6a9804..265be1d 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int any_e755c1() {
   bool3 arg_0 = (true).xxx;
   bool res = any(arg_0);
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(any_e755c1()));
   return;
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.glsl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.glsl
index 7bfedae..37920e1 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_e755c1() {
   bvec3 arg_0 = bvec3(true);
   bool res = any(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int any_e755c1() {
   bvec3 arg_0 = bvec3(true);
   bool res = any(arg_0);
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.wgsl
index dc0bbbc..c640e28 100644
--- a/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/any/e755c1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn any_e755c1() -> i32 {
   var arg_0 = vec3<bool>(true);
   var res : bool = any(arg_0);
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = any_e755c1();
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl
index 9af40a9..11dd7e5 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<i32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_1588cd();
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
index 032bb4e..6d80313 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_1588cd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
   return;
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
index 032bb4e..6d80313 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_1588cd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_1588cd()));
   return;
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
index 96261d9..1721801 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   int arg_0[];
 } sb_ro;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm
index aa1e390..e44749e 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_1588cd "arrayLength_1588cd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,16 +33,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,14 +57,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl
index 458ccad..b00ac77 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_1588cd();
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl
index 4af33e6..4f98e9a 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<i32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_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
index 02808f6..7a26fc2 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_61b1c7() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index 02808f6..7a26fc2 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_61b1c7() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index 486ee35..2bdfddf 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   int arg_0[];
 } sb_rw;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   int arg_0[];
 } sb_rw;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm
index eff89d4..4a7c8be 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_61b1c7 "arrayLength_61b1c7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,15 +33,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_int ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,14 +56,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl
index 3c6e36f..6ecb7aa 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_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
index 263df5b..75e7d8b 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl
@@ -39,6 +39,9 @@
 
 
 enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<f16>,
 };
@@ -49,8 +52,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_8421b9();
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
index bef37e9..e02571b 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_8421b9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
   return;
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
index bef37e9..e02571b 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_8421b9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_8421b9()));
   return;
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
index 0927b79..cae2a68 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -32,6 +32,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float16_t arg_0[];
 } sb_ro;
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm
index c122620..df76986 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.spvasm
@@ -16,12 +16,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_8421b9 "arrayLength_8421b9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -36,16 +36,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_half ArrayStride 2
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -60,14 +60,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
        %half = OpTypeFloat 16
 %_runtimearr_half = OpTypeRuntimeArray %half
       %SB_RO = OpTypeStruct %_runtimearr_half
 %_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
       %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl
index acf8444..ec5202c 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<f16>,
 }
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_8421b9();
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl
index 0eb5055..6339a25 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<f32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_a0f5ca();
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
index 0db7147..aa0f392 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_a0f5ca() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
   return;
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
index 0db7147..aa0f392 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_a0f5ca() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_a0f5ca()));
   return;
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
index 1f4e230..2949eec 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   float arg_0[];
 } sb_ro;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm
index 3197bfd..0f4f9b6 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_a0f5ca "arrayLength_a0f5ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,16 +33,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,13 +57,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
 %_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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl
index 3103012..49a5398 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<f32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_a0f5ca();
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl
index 86bcec8..4072164 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl
@@ -39,6 +39,9 @@
 
 
 enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<f16>,
 };
@@ -49,8 +52,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_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
index 75693c2..3014a2c 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cbd6b5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index 75693c2..3014a2c 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cbd6b5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index 65206aa..532f394 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float16_t arg_0[];
 } sb_rw;
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -32,6 +32,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float16_t arg_0[];
 } sb_rw;
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm
index ce8d674..7c15916 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.spvasm
@@ -16,12 +16,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_cbd6b5 "arrayLength_cbd6b5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -36,15 +36,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_half ArrayStride 2
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -59,14 +59,14 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
        %half = OpTypeFloat 16
 %_runtimearr_half = OpTypeRuntimeArray %half
       %SB_RW = OpTypeStruct %_runtimearr_half
 %_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
       %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %21 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl
index 4de9b11..9e20158 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<f16>,
 }
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cbd6b5();
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl
index 90b9e0d..3100309 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<f32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_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
index 008818d..afef5da 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cdd123() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index 008818d..afef5da 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_cdd123() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index a008787..87b018d 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float arg_0[];
 } sb_rw;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   float arg_0[];
 } sb_rw;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm
index 9df29dd..e0dac6c 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_cdd123 "arrayLength_cdd123"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,15 +33,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_float ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,13 +56,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
 %_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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl
index 38405ee..ff45788 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<f32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cdd123();
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl
index 627a85e..3e228f6 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0: array<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_ro.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cfca0a();
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
index 8e8d801..7ce1661 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_cfca0a() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
   return;
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
index 8e8d801..7ce1661 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 ByteAddressBuffer sb_ro : register(t1);
 
 uint arrayLength_cfca0a() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(arrayLength_cfca0a()));
   return;
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
index 07d7cfb..d72eb17 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RO_ssbo {
   uint arg_0[];
 } sb_ro;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm
index 2579706..298ba19 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RO "SB_RO"
-               OpMemberName %SB_RO 0 "arg_0"
-               OpName %sb_ro "sb_ro"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RO "SB_RO"
+               OpMemberName %SB_RO 0 "arg_0"
+               OpName %sb_ro "sb_ro"
                OpName %arrayLength_cfca0a "arrayLength_cfca0a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,16 +33,16 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RO Block
                OpMemberDecorate %SB_RO 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
                OpDecorate %sb_ro NonWritable
                OpDecorate %sb_ro DescriptorSet 0
                OpDecorate %sb_ro Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,13 +57,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl
index 171f77b..c1b2368 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RO {
   arg_0 : array<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_cfca0a();
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl
index 0d70933..6089eef 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: array<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = arrayLength(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_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
index c91ef7c..21ef6158 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_eb510f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index c91ef7c..21ef6158 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint arrayLength_eb510f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_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
index c0dfe37..19878b8 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   uint arg_0[];
 } sb_rw;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(binding = 1, std430) buffer SB_RW_ssbo {
   uint arg_0[];
 } sb_rw;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm
index 7c1495f..18c3487 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.spvasm
@@ -13,12 +13,12 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %SB_RW "SB_RW"
-               OpMemberName %SB_RW 0 "arg_0"
-               OpName %sb_rw "sb_rw"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %SB_RW "SB_RW"
+               OpMemberName %SB_RW 0 "arg_0"
+               OpName %sb_rw "sb_rw"
                OpName %arrayLength_eb510f "arrayLength_eb510f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,15 +33,15 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %SB_RW Block
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %_runtimearr_uint ArrayStride 4
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,13 +56,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = 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
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl
index ddc862b..5993870 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : array<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = arrayLength_eb510f();
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl b/test/tint/builtins/gen/var/asin/064953.wgsl
index f087a38..82b171a 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn asin(vec<4, f32>) -> vec<4, f32>
 fn asin_064953() -> vec4<f32>{
   var arg_0 = vec4<f32>(0.479425538604f);
   var res: vec4<f32> = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_064953();
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
index 39f334c..322775c 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asin_064953() {
   float4 arg_0 = (0.47942554950714111328f).xxxx;
   float4 res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asin_064953()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
index 39f334c..322775c 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asin_064953() {
   float4 arg_0 = (0.47942554950714111328f).xxxx;
   float4 res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asin_064953()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
index c9b46a4..faa847c 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asin_064953() {
   vec4 arg_0 = vec4(0.47942554950714111328f);
   vec4 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asin_064953() {
   vec4 arg_0 = vec4(0.47942554950714111328f);
   vec4 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
index 897c29d..9d82e75 100644
--- a/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/064953.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn asin_064953() -> vec4<f32> {
   var arg_0 = vec4<f32>(0.47942554950714111328f);
   var res : vec4<f32> = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_064953();
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl
index 5e8efbf..7d7bbff 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn asin(f16) -> f16
 fn asin_11dfda() -> f16{
   var arg_0 = 0.479425538604h;
   var res: f16 = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_11dfda();
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl
index a411cd7..5fd2aad 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t asin_11dfda() {
   float16_t arg_0 = float16_t(0.479248046875h);
   float16_t res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, asin_11dfda());
   return;
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl
index d4d3095..a3bba73 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asin_11dfda() {
   float16_t arg_0 = 0.479248046875hf;
   float16_t res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asin_11dfda() {
   float16_t arg_0 = 0.479248046875hf;
   float16_t res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl
index 84afe6b..77fff9a 100644
--- a/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/11dfda.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn asin_11dfda() -> f16 {
   var arg_0 = 0.479248046875h;
   var res : f16 = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_11dfda();
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl
index d993bf6..0870300 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn asin(vec<3, f16>) -> vec<3, f16>
 fn asin_2d8e29() -> vec3<f16>{
   var arg_0 = vec3<f16>(0.479425538604h);
   var res: vec3<f16> = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_2d8e29();
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl
index 6d7d90a..33201eb 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> asin_2d8e29() {
   vector<float16_t, 3> arg_0 = (float16_t(0.479248046875h)).xxx;
   vector<float16_t, 3> res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, asin_2d8e29());
   return;
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl
index d6f17b4..7b23798 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asin_2d8e29() {
   f16vec3 arg_0 = f16vec3(0.479248046875hf);
   f16vec3 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asin_2d8e29() {
   f16vec3 arg_0 = f16vec3(0.479248046875hf);
   f16vec3 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl
index 1be1c00..cf6ee6c 100644
--- a/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/2d8e29.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn asin_2d8e29() -> vec3<f16> {
   var arg_0 = vec3<f16>(0.479248046875h);
   var res : vec3<f16> = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_2d8e29();
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl
index 279b9a0..24240a6 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn asin(vec<4, f16>) -> vec<4, f16>
 fn asin_3cfbd4() -> vec4<f16>{
   var arg_0 = vec4<f16>(0.479425538604h);
   var res: vec4<f16> = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_3cfbd4();
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl
index 922679d..eb2bac8 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> asin_3cfbd4() {
   vector<float16_t, 4> arg_0 = (float16_t(0.479248046875h)).xxxx;
   vector<float16_t, 4> res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, asin_3cfbd4());
   return;
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl
index b00b89d..fb21829 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asin_3cfbd4() {
   f16vec4 arg_0 = f16vec4(0.479248046875hf);
   f16vec4 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asin_3cfbd4() {
   f16vec4 arg_0 = f16vec4(0.479248046875hf);
   f16vec4 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl
index 426a479..6a1d31e 100644
--- a/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/3cfbd4.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn asin_3cfbd4() -> vec4<f16> {
   var arg_0 = vec4<f16>(0.479248046875h);
   var res : vec4<f16> = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_3cfbd4();
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl
index d5a44e1..59df4e1 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn asin(vec<2, f32>) -> vec<2, f32>
 fn asin_7b6a44() -> vec2<f32>{
   var arg_0 = vec2<f32>(0.479425538604f);
   var res: vec2<f32> = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_7b6a44();
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
index 1aad439..5ce47b7 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asin_7b6a44() {
   float2 arg_0 = (0.47942554950714111328f).xx;
   float2 res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asin_7b6a44()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
index 1aad439..5ce47b7 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asin_7b6a44() {
   float2 arg_0 = (0.47942554950714111328f).xx;
   float2 res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asin_7b6a44()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
index 84a6481..75b240b 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asin_7b6a44() {
   vec2 arg_0 = vec2(0.47942554950714111328f);
   vec2 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asin_7b6a44() {
   vec2 arg_0 = vec2(0.47942554950714111328f);
   vec2 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
index 6a5b86a..736dcbf 100644
--- a/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/7b6a44.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn asin_7b6a44() -> vec2<f32> {
   var arg_0 = vec2<f32>(0.47942554950714111328f);
   var res : vec2<f32> = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_7b6a44();
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl
index 13924cb..f7abf21 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn asin(vec<3, f32>) -> vec<3, f32>
 fn asin_8cd9c9() -> vec3<f32>{
   var arg_0 = vec3<f32>(0.479425538604f);
   var res: vec3<f32> = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_8cd9c9();
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
index 3ff97e3..7d7f637 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asin_8cd9c9() {
   float3 arg_0 = (0.47942554950714111328f).xxx;
   float3 res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
index 3ff97e3..7d7f637 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asin_8cd9c9() {
   float3 arg_0 = (0.47942554950714111328f).xxx;
   float3 res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asin_8cd9c9()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
index 05d7552..b3f9cc5 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 asin_8cd9c9() {
   vec3 arg_0 = vec3(0.47942554950714111328f);
   vec3 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 asin_8cd9c9() {
   vec3 arg_0 = vec3(0.47942554950714111328f);
   vec3 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
index 60a9737..b00b275 100644
--- a/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/8cd9c9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn asin_8cd9c9() -> vec3<f32> {
   var arg_0 = vec3<f32>(0.47942554950714111328f);
   var res : vec3<f32> = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_8cd9c9();
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl
index 28ad0ad..a046fd7 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn asin(vec<2, f16>) -> vec<2, f16>
 fn asin_b4aced() -> vec2<f16>{
   var arg_0 = vec2<f16>(0.479425538604h);
   var res: vec2<f16> = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_b4aced();
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl
index 68b0e28..d484986 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> asin_b4aced() {
   vector<float16_t, 2> arg_0 = (float16_t(0.479248046875h)).xx;
   vector<float16_t, 2> res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, asin_b4aced());
   return;
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl
index c576636..2f58b12 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asin_b4aced() {
   f16vec2 arg_0 = f16vec2(0.479248046875hf);
   f16vec2 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asin_b4aced() {
   f16vec2 arg_0 = f16vec2(0.479248046875hf);
   f16vec2 res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl
index dacb40c..df509eb 100644
--- a/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/b4aced.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn asin_b4aced() -> vec2<f16> {
   var arg_0 = vec2<f16>(0.479248046875h);
   var res : vec2<f16> = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_b4aced();
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl
index c30610d..8c03f84 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn asin(f32) -> f32
 fn asin_c0c272() -> f32{
   var arg_0 = 0.479425538604f;
   var res: f32 = asin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_c0c272();
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
index f6b9641..c3ff8b1 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asin_c0c272() {
   float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asin_c0c272()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
index f6b9641..c3ff8b1 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asin_c0c272() {
   float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asin_c0c272()));
   return;
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
index 2eb9a27..566fe43 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asin_c0c272() {
   float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asin_c0c272() {
   float arg_0 = 0.47942554950714111328f;
   float res = asin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
index fe391b0..ca96400 100644
--- a/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asin/c0c272.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn asin_c0c272() -> f32 {
   var arg_0 = 0.47942554950714111328f;
   var res : f32 = asin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asin_c0c272();
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl b/test/tint/builtins/gen/var/asinh/157447.wgsl
index 39069c1..b72586e 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn asinh(f32) -> f32
 fn asinh_157447() -> f32{
   var arg_0 = 1.f;
   var res: f32 = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_157447();
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.dxc.hlsl
index 3bf4992..223686c 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asinh_157447() {
   float arg_0 = 1.0f;
   float res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asinh_157447()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.fxc.hlsl
index 3bf4992..223686c 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float asinh_157447() {
   float arg_0 = 1.0f;
   float res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(asinh_157447()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.glsl
index 0a8e5eb..fa0207d 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asinh_157447() {
   float arg_0 = 1.0f;
   float res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float asinh_157447() {
   float arg_0 = 1.0f;
   float res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.wgsl
index f86cb05..a621778 100644
--- a/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/157447.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn asinh_157447() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_157447();
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl
index d2619c9..e524575 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn asinh(vec<3, f32>) -> vec<3, f32>
 fn asinh_2265ee() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_2265ee();
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.dxc.hlsl
index 5990533..85967e2 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asinh_2265ee() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asinh_2265ee()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.fxc.hlsl
index 5990533..85967e2 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 asinh_2265ee() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(asinh_2265ee()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.glsl
index 3500ce9..83afaaa 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 asinh_2265ee() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 asinh_2265ee() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.wgsl
index 032ac03..374e1b4 100644
--- a/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/2265ee.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn asinh_2265ee() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_2265ee();
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl
index 6128d0e..651bfc5 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn asinh(f16) -> f16
 fn asinh_468a48() -> f16{
   var arg_0 = 1.h;
   var res: f16 = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_468a48();
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.dxc.hlsl
index 0926f6b..fb0623d 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t asinh_468a48() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, asinh_468a48());
   return;
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.glsl
index 6276fd9..50feca0 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asinh_468a48() {
   float16_t arg_0 = 1.0hf;
   float16_t res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t asinh_468a48() {
   float16_t arg_0 = 1.0hf;
   float16_t res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.wgsl
index f5293f9..fd25d30 100644
--- a/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/468a48.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn asinh_468a48() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_468a48();
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl
index c03d401..0a14165 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn asinh(vec<2, f32>) -> vec<2, f32>
 fn asinh_4a2226() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_4a2226();
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.dxc.hlsl
index 04bd0f1..09d6b8b 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asinh_4a2226() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asinh_4a2226()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.fxc.hlsl
index 04bd0f1..09d6b8b 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 asinh_4a2226() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(asinh_4a2226()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.glsl
index a306736..aa6d21f 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asinh_4a2226() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 asinh_4a2226() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.wgsl
index 52e9678..87ef9ec 100644
--- a/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/4a2226.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn asinh_4a2226() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_4a2226();
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl
index 32dfa32..a1e9ec8 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn asinh(vec<4, f32>) -> vec<4, f32>
 fn asinh_8d2e51() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_8d2e51();
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.dxc.hlsl
index 8c57d01..9fcd9b1 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asinh_8d2e51() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.fxc.hlsl
index 8c57d01..9fcd9b1 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + 1.0f))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 asinh_8d2e51() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(asinh_8d2e51()));
   return;
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.glsl
index 2ac9c00..fe2427b 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asinh_8d2e51() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 asinh_8d2e51() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.wgsl
index e48da6c..20b4b24 100644
--- a/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/8d2e51.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn asinh_8d2e51() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_8d2e51();
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl
index f2e91ea..48dd626 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn asinh(vec<4, f16>) -> vec<4, f16>
 fn asinh_95ab2b() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_95ab2b();
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.dxc.hlsl
index 3d76be9..6bf0328 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> asinh_95ab2b() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, asinh_95ab2b());
   return;
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.glsl
index a572edb..cf405f4af 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asinh_95ab2b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 asinh_95ab2b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.wgsl
index 2b9df21..c8536bf 100644
--- a/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/95ab2b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn asinh_95ab2b() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_95ab2b();
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl
index e20ac69..3a0f8f2 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn asinh(vec<2, f16>) -> vec<2, f16>
 fn asinh_ad8f8b() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_ad8f8b();
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.dxc.hlsl
index 9a9a0d2..7b7833c 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> asinh_ad8f8b() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, asinh_ad8f8b());
   return;
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.glsl
index 37e2b87..3c6e51f 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asinh_ad8f8b() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 asinh_ad8f8b() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.wgsl
index 7656345..93b3fff 100644
--- a/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/ad8f8b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn asinh_ad8f8b() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_ad8f8b();
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl
index 200c0d5..b975e96 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn asinh(vec<3, f16>) -> vec<3, f16>
 fn asinh_fb5e8c() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = asinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_fb5e8c();
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.dxc.hlsl
index a4de164..5b6be9b 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return log((x + sqrt(((x * x) + float16_t(1.0h)))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> asinh_fb5e8c() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tint_sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, asinh_fb5e8c());
   return;
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.glsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.glsl
index eb737a0..c7a28fb 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asinh_fb5e8c() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 asinh_fb5e8c() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = asinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.wgsl
index c80013d..e63636e 100644
--- a/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/asinh/fb5e8c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn asinh_fb5e8c() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = asinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = asinh_fb5e8c();
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl b/test/tint/builtins/gen/var/atan/02979a.wgsl
index e6cd1f3..e351eca 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn atan(f32) -> f32
 fn atan_02979a() -> f32{
   var arg_0 = 1.f;
   var res: f32 = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_02979a();
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.dxc.hlsl
index 5794ec7..9fa5b95 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan_02979a() {
   float arg_0 = 1.0f;
   float res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan_02979a()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.fxc.hlsl
index 5794ec7..9fa5b95 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan_02979a() {
   float arg_0 = 1.0f;
   float res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan_02979a()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.glsl
index c09e3a9..d02ef67 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan_02979a() {
   float arg_0 = 1.0f;
   float res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan_02979a() {
   float arg_0 = 1.0f;
   float res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.wgsl
index c7f7fd1..aa229e0 100644
--- a/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/02979a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn atan_02979a() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_02979a();
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl b/test/tint/builtins/gen/var/atan/19faea.wgsl
index d6927c6..7cfc098 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn atan(vec<4, f16>) -> vec<4, f16>
 fn atan_19faea() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_19faea();
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.dxc.hlsl
index bf3d8e6..b572f0d 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> atan_19faea() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, atan_19faea());
   return;
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.glsl
index a95ac55..522bb5c 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan_19faea() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan_19faea() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.wgsl
index 1e992e8..65ee8c0 100644
--- a/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/19faea.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn atan_19faea() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_19faea();
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl
index b311793..ed3137e 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn atan(vec<2, f16>) -> vec<2, f16>
 fn atan_1e1764() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_1e1764();
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.dxc.hlsl
index 1a971b2..543143f 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> atan_1e1764() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, atan_1e1764());
   return;
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.glsl
index 1343841..0d7005b 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan_1e1764() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan_1e1764() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.wgsl
index 5d9eae9..d17681b 100644
--- a/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/1e1764.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn atan_1e1764() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_1e1764();
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl
index e922dc8..8aab919 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn atan(vec<3, f32>) -> vec<3, f32>
 fn atan_331e6d() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_331e6d();
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.dxc.hlsl
index 50b7bae..62a0932 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan_331e6d() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan_331e6d()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.fxc.hlsl
index 50b7bae..62a0932 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan_331e6d() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan_331e6d()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.glsl
index 403df3e..bac45c6 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 atan_331e6d() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 atan_331e6d() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.wgsl
index 6c144a5..2b07fa2 100644
--- a/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/331e6d.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn atan_331e6d() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_331e6d();
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl
index bed3f40..ce1254b 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn atan(vec<3, f16>) -> vec<3, f16>
 fn atan_a5f421() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a5f421();
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.dxc.hlsl
index f7114f2..373c5f8 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> atan_a5f421() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, atan_a5f421());
   return;
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.glsl
index 59b7cc6..13bc314 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan_a5f421() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan_a5f421() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.wgsl
index c10b01d..a6ce04a 100644
--- a/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/a5f421.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn atan_a5f421() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a5f421();
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl
index a33cee6..b2bec30 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn atan(f16) -> f16
 fn atan_a7ba61() -> f16{
   var arg_0 = 1.h;
   var res: f16 = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a7ba61();
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.dxc.hlsl
index 83dfaf7..9cb4f6b 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t atan_a7ba61() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, atan_a7ba61());
   return;
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.glsl
index 38ac48f..aebc85a 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan_a7ba61() {
   float16_t arg_0 = 1.0hf;
   float16_t res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan_a7ba61() {
   float16_t arg_0 = 1.0hf;
   float16_t res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.wgsl
index d2d393a..6611e7a 100644
--- a/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/a7ba61.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn atan_a7ba61() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a7ba61();
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl
index 828077a..fc08484 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn atan(vec<4, f32>) -> vec<4, f32>
 fn atan_a8b696() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a8b696();
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.dxc.hlsl
index 22dc621..f4d7597 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan_a8b696() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan_a8b696()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.fxc.hlsl
index 22dc621..f4d7597 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan_a8b696() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan_a8b696()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.glsl
index 490d934..5287303 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan_a8b696() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan_a8b696() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.wgsl
index 1f2d7ac..77f3c30 100644
--- a/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/a8b696.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn atan_a8b696() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_a8b696();
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl
index 7329758..e3c6201 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn atan(vec<2, f32>) -> vec<2, f32>
 fn atan_ad96e4() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = atan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_ad96e4();
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.dxc.hlsl
index 1688764..25c8cbd 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan_ad96e4() {
   float2 arg_0 = (1.0f).xx;
   float2 res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan_ad96e4()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.fxc.hlsl
index 1688764..25c8cbd 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan_ad96e4() {
   float2 arg_0 = (1.0f).xx;
   float2 res = atan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan_ad96e4()));
   return;
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.glsl
index 2446f31..9a9f048 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan_ad96e4() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan_ad96e4() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = atan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.wgsl
index f5de355..1f96e15 100644
--- a/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan/ad96e4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn atan_ad96e4() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = atan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan_ad96e4();
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl
index a86b365..740a344 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn atan2(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn atan2_21dfea() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_21dfea();
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.dxc.hlsl
index 7cf6f84..f7c5452 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> atan2_21dfea() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, atan2_21dfea());
   return;
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.glsl
index b28c41c..b4210e8 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan2_21dfea() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atan2_21dfea() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.wgsl
index ac248c2..f5fe37e 100644
--- a/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/21dfea.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn atan2_21dfea() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_21dfea();
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl
index dea5874..90631ae 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn atan2(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn atan2_57fb13() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_57fb13();
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.dxc.hlsl
index 73c2740..39a25fb 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan2_57fb13() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan2_57fb13()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.fxc.hlsl
index 73c2740..39a25fb 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atan2_57fb13() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atan2_57fb13()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.glsl
index 4b2f7cc..47a139b 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan2_57fb13() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atan2_57fb13() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.wgsl
index abfbf3d..a1f1470 100644
--- a/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/57fb13.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn atan2_57fb13() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_57fb13();
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl
index 84b721c..39fba1e 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn atan2(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn atan2_93febc() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_93febc();
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.dxc.hlsl
index 5b9f7e3..aec402c 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> atan2_93febc() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, atan2_93febc());
   return;
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.glsl
index 3752374..6da2ac5 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan2_93febc() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atan2_93febc() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.wgsl
index 89be9dd..e79ab79 100644
--- a/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/93febc.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn atan2_93febc() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_93febc();
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl
index a23d913..b064a5a 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn atan2(f32, f32) -> f32
 fn atan2_96057c() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_96057c();
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.dxc.hlsl
index 031d7f9..24c8697 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan2_96057c() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan2_96057c()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.fxc.hlsl
index 031d7f9..24c8697 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atan2_96057c() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atan2_96057c()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.glsl
index 8ab30df..60483bb 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan2_96057c() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atan2_96057c() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.wgsl
index 3ccdd26..a372461 100644
--- a/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/96057c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn atan2_96057c() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_96057c();
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl
index 2e29d90..37de75c 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn atan2(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn atan2_a70d0d() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_a70d0d();
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.dxc.hlsl
index 31d8840..9516489 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan2_a70d0d() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.fxc.hlsl
index 31d8840..9516489 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atan2_a70d0d() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atan2_a70d0d()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.glsl
index 5872ca7..9fdac53 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 atan2_a70d0d() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 atan2_a70d0d() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.wgsl
index c59c701..7ea91cc 100644
--- a/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/a70d0d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn atan2_a70d0d() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_a70d0d();
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl
index 425dc29..5e5f686 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn atan2(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn atan2_ae713e() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ae713e();
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.dxc.hlsl
index 022992b..e85a527d 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan2_ae713e() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan2_ae713e()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.fxc.hlsl
index 022992b..e85a527d 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atan2_ae713e() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atan2_ae713e()));
   return;
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.glsl
index 021b17b..aecf8da 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan2_ae713e() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atan2_ae713e() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.wgsl
index 3ec0d74..7b131c8 100644
--- a/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/ae713e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn atan2_ae713e() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ae713e();
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl
index 5c65e97..6ce4a60 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn atan2(f16, f16) -> f16
 fn atan2_ca698e() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ca698e();
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.dxc.hlsl
index 1362c0e..0779179 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t atan2_ca698e() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, atan2_ca698e());
   return;
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.glsl
index a56b4bd..41b0383 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan2_ca698e() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atan2_ca698e() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.wgsl
index c5ccadf..7ea249a 100644
--- a/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/ca698e.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn atan2_ca698e() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_ca698e();
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl
index df7a8c5..35fba7e 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn atan2(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn atan2_d983ab() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = atan2(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_d983ab();
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.dxc.hlsl
index 480b3b2..0750ccd 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> atan2_d983ab() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, atan2_d983ab());
   return;
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.glsl
index cf79e88..9508234 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan2_d983ab() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atan2_d983ab() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.wgsl
index b7529f0..588bcea 100644
--- a/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atan2/d983ab.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn atan2_d983ab() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atan2_d983ab();
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl
index 10c1633..a9ba8c6 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn atanh(vec<3, f32>) -> vec<3, f32>
 fn atanh_440cca() -> vec3<f32>{
   var arg_0 = vec3<f32>(0.5f);
   var res: vec3<f32> = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_440cca();
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.dxc.hlsl
index a8fb673..ae43c4b 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atanh_440cca() {
   float3 arg_0 = (0.5f).xxx;
   float3 res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atanh_440cca()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.fxc.hlsl
index a8fb673..ae43c4b 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 atanh_440cca() {
   float3 arg_0 = (0.5f).xxx;
   float3 res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(atanh_440cca()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.glsl
index 31d8224..c8af94b 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.glsl
@@ -11,17 +11,17 @@
   return tint_select(atanh(x), vec3(0.0f), greaterThanEqual(x, vec3(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 atanh_440cca() {
   vec3 arg_0 = vec3(0.5f);
   vec3 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -46,17 +46,17 @@
   return tint_select(atanh(x), vec3(0.0f), greaterThanEqual(x, vec3(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 atanh_440cca() {
   vec3 arg_0 = vec3(0.5f);
   vec3 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.wgsl
index 3c5df97..63087c4 100644
--- a/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/440cca.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn atanh_440cca() -> vec3<f32> {
   var arg_0 = vec3<f32>(0.5f);
   var res : vec3<f32> = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_440cca();
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl
index de82e63..79743b7 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn atanh(vec<2, f16>) -> vec<2, f16>
 fn atanh_5bf88d() -> vec2<f16>{
   var arg_0 = vec2<f16>(0.5h);
   var res: vec2<f16> = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_5bf88d();
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.dxc.hlsl
index 9a09e13..8120297 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> atanh_5bf88d() {
   vector<float16_t, 2> arg_0 = (float16_t(0.5h)).xx;
   vector<float16_t, 2> res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, atanh_5bf88d());
   return;
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.glsl
index 4ca0ea7..991f737 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_select(atanh(x), f16vec2(0.0hf), greaterThanEqual(x, f16vec2(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atanh_5bf88d() {
   f16vec2 arg_0 = f16vec2(0.5hf);
   f16vec2 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -47,16 +47,16 @@
   return tint_select(atanh(x), f16vec2(0.0hf), greaterThanEqual(x, f16vec2(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 atanh_5bf88d() {
   f16vec2 arg_0 = f16vec2(0.5hf);
   f16vec2 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.wgsl
index 5b4d31c..efe0e26 100644
--- a/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/5bf88d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn atanh_5bf88d() -> vec2<f16> {
   var arg_0 = vec2<f16>(0.5h);
   var res : vec2<f16> = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_5bf88d();
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl
index 304c68e..12d3e0d 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn atanh(f32) -> f32
 fn atanh_7997d8() -> f32{
   var arg_0 = 0.5f;
   var res: f32 = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_7997d8();
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.dxc.hlsl
index 80c37d1..247d95f 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atanh_7997d8() {
   float arg_0 = 0.5f;
   float res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atanh_7997d8()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.fxc.hlsl
index 80c37d1..247d95f 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float atanh_7997d8() {
   float arg_0 = 0.5f;
   float res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atanh_7997d8()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.glsl
index 6df7e8f..0058bd4 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.glsl
@@ -6,16 +6,16 @@
   return ((x >= 1.0f) ? 0.0f : atanh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atanh_7997d8() {
   float arg_0 = 0.5f;
   float res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -35,16 +35,16 @@
   return ((x >= 1.0f) ? 0.0f : atanh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float atanh_7997d8() {
   float arg_0 = 0.5f;
   float res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.wgsl
index 2beb5a7..f7ad62e 100644
--- a/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/7997d8.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn atanh_7997d8() -> f32 {
   var arg_0 = 0.5f;
   var res : f32 = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_7997d8();
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl
index 603d410..c95529d 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn atanh(vec<2, f32>) -> vec<2, f32>
 fn atanh_c0e634() -> vec2<f32>{
   var arg_0 = vec2<f32>(0.5f);
   var res: vec2<f32> = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_c0e634();
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.dxc.hlsl
index 8428e6f..c4d8567 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atanh_c0e634() {
   float2 arg_0 = (0.5f).xx;
   float2 res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atanh_c0e634()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.fxc.hlsl
index 8428e6f..c4d8567 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 atanh_c0e634() {
   float2 arg_0 = (0.5f).xx;
   float2 res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(atanh_c0e634()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.glsl
index 67c75ef..e2fb840 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.glsl
@@ -11,16 +11,16 @@
   return tint_select(atanh(x), vec2(0.0f), greaterThanEqual(x, vec2(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atanh_c0e634() {
   vec2 arg_0 = vec2(0.5f);
   vec2 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -45,16 +45,16 @@
   return tint_select(atanh(x), vec2(0.0f), greaterThanEqual(x, vec2(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 atanh_c0e634() {
   vec2 arg_0 = vec2(0.5f);
   vec2 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.wgsl
index d5385fb..b46cb04 100644
--- a/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/c0e634.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn atanh_c0e634() -> vec2<f32> {
   var arg_0 = vec2<f32>(0.5f);
   var res : vec2<f32> = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_c0e634();
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl
index df943eb..36917ad 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn atanh(f16) -> f16
 fn atanh_d2d8cd() -> f16{
   var arg_0 = 0.5h;
   var res: f16 = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_d2d8cd();
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.dxc.hlsl
index bc89f77..dba553c 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t atanh_d2d8cd() {
   float16_t arg_0 = float16_t(0.5h);
   float16_t res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, atanh_d2d8cd());
   return;
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.glsl
index 46096c1..e1f0401 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return ((x >= 1.0hf) ? 0.0hf : atanh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atanh_d2d8cd() {
   float16_t arg_0 = 0.5hf;
   float16_t res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -37,16 +37,16 @@
   return ((x >= 1.0hf) ? 0.0hf : atanh(x));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t atanh_d2d8cd() {
   float16_t arg_0 = 0.5hf;
   float16_t res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.wgsl
index 429889d..620ae9e 100644
--- a/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/d2d8cd.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn atanh_d2d8cd() -> f16 {
   var arg_0 = 0.5h;
   var res : f16 = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_d2d8cd();
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl
index 2d1cd91..2544848 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn atanh(vec<4, f16>) -> vec<4, f16>
 fn atanh_e3b450() -> vec4<f16>{
   var arg_0 = vec4<f16>(0.5h);
   var res: vec4<f16> = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_e3b450();
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.dxc.hlsl
index dcdb1e1..90f236e 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> atanh_e3b450() {
   vector<float16_t, 4> arg_0 = (float16_t(0.5h)).xxxx;
   vector<float16_t, 4> res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, atanh_e3b450());
   return;
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.glsl
index 112fd26..5c12582 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_select(atanh(x), f16vec4(0.0hf), greaterThanEqual(x, f16vec4(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atanh_e3b450() {
   f16vec4 arg_0 = f16vec4(0.5hf);
   f16vec4 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -47,16 +47,16 @@
   return tint_select(atanh(x), f16vec4(0.0hf), greaterThanEqual(x, f16vec4(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 atanh_e3b450() {
   f16vec4 arg_0 = f16vec4(0.5hf);
   f16vec4 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.wgsl
index 9af3d2b..48ec2e8 100644
--- a/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/e3b450.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn atanh_e3b450() -> vec4<f16> {
   var arg_0 = vec4<f16>(0.5h);
   var res : vec4<f16> = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_e3b450();
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl
index 2706aea..d675c70 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn atanh(vec<3, f16>) -> vec<3, f16>
 fn atanh_ec4b06() -> vec3<f16>{
   var arg_0 = vec3<f16>(0.5h);
   var res: vec3<f16> = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_ec4b06();
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.dxc.hlsl
index cf6a8be..f0d9caa 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((float16_t(1.0h) + x) / (float16_t(1.0h) - x))) * float16_t(0.5h));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> atanh_ec4b06() {
   vector<float16_t, 3> arg_0 = (float16_t(0.5h)).xxx;
   vector<float16_t, 3> res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, atanh_ec4b06());
   return;
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.glsl
index 94a6122..5993745 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_select(atanh(x), f16vec3(0.0hf), greaterThanEqual(x, f16vec3(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atanh_ec4b06() {
   f16vec3 arg_0 = f16vec3(0.5hf);
   f16vec3 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -47,16 +47,16 @@
   return tint_select(atanh(x), f16vec3(0.0hf), greaterThanEqual(x, f16vec3(1.0hf)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 atanh_ec4b06() {
   f16vec3 arg_0 = f16vec3(0.5hf);
   f16vec3 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.wgsl
index 290087b..22ae8bb 100644
--- a/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/ec4b06.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn atanh_ec4b06() -> vec3<f16> {
   var arg_0 = vec3<f16>(0.5h);
   var res : vec3<f16> = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_ec4b06();
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl
index 0d0dd67..79b94bb 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn atanh(vec<4, f32>) -> vec<4, f32>
 fn atanh_f3e01b() -> vec4<f32>{
   var arg_0 = vec4<f32>(0.5f);
   var res: vec4<f32> = atanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_f3e01b();
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.dxc.hlsl
index 5a7c2d8..44e725a 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atanh_f3e01b() {
   float4 arg_0 = (0.5f).xxxx;
   float4 res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.fxc.hlsl
index 5a7c2d8..44e725a 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (log(((1.0f + x) / (1.0f - x))) * 0.5f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 atanh_f3e01b() {
   float4 arg_0 = (0.5f).xxxx;
   float4 res = tint_atanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(atanh_f3e01b()));
   return;
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.glsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.glsl
index 30cca93..8ada17a 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.glsl
@@ -11,16 +11,16 @@
   return tint_select(atanh(x), vec4(0.0f), greaterThanEqual(x, vec4(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atanh_f3e01b() {
   vec4 arg_0 = vec4(0.5f);
   vec4 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -45,16 +45,16 @@
   return tint_select(atanh(x), vec4(0.0f), greaterThanEqual(x, vec4(1.0f)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 atanh_f3e01b() {
   vec4 arg_0 = vec4(0.5f);
   vec4 res = tint_atanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.wgsl
index 4bf3892..d51a9a9 100644
--- a/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atanh/f3e01b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn atanh_f3e01b() -> vec4<f32> {
   var arg_0 = vec4<f32>(0.5f);
   var res : vec4<f32> = atanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atanh_f3e01b();
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl
index 4de9ca6..9632ebe 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicAdd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicAdd(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_794055();
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.dxc.hlsl
index a80360a..b4ae2f6 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAdd_794055() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.fxc.hlsl
index a80360a..b4ae2f6 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAdd_794055() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.glsl
index c9d3702..8f8b0b6 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicAdd_794055() {
   int arg_1 = 1;
   int res = atomicAdd(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAdd_794055();
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm
index c9ce653..7e72895 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAdd_794055 "atomicAdd_794055"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.wgsl
index 8a82e5f..e2286f5 100644
--- a/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/794055.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicAdd_794055() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_794055();
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl
index 65b53cb..6321ccb 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicAdd(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_8a199a();
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.dxc.hlsl
index 5265d72..3cf3b94 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAdd(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_8a199a()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.fxc.hlsl
index 5265d72..3cf3b94 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAdd(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_8a199a()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl
index 34ba354..065d00c 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAdd_8a199a();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAdd_8a199a();
 }
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.spvasm
index 08d114c..1aa962e 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAdd_8a199a "atomicAdd_8a199a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.wgsl
index ae6cfd6..429cfee 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_8a199a();
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl
index a2688a5..59c3f3a 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicAdd(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_d32fe4();
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl
index 2a10fd6..635dff3 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAdd(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl
index 2a10fd6..635dff3 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAdd(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAdd_d32fe4()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl
index 496a97e..c91de7b 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAdd_d32fe4();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAdd_d32fe4();
 }
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.spvasm
index 683fad0..cdbf1a0 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAdd_d32fe4 "atomicAdd_d32fe4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.wgsl
index db6be12..b6efe0f 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAdd_d32fe4();
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl
index 1659dde..3be3840 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicAdd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicAdd(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_d5db1d();
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl
index 6efbb8d..2172c90 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAdd_d5db1d() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl
index 6efbb8d..2172c90 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAdd_d5db1d() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.glsl
index f51aecc..5df00ac 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicAdd_d5db1d() {
   uint arg_1 = 1u;
   uint res = atomicAdd(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAdd_d5db1d();
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm
index 3daea7f..ec289b3 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAdd_d5db1d "atomicAdd_d5db1d"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.wgsl
index 3913946..525847e 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d5db1d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicAdd_d5db1d() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAdd_d5db1d();
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl
index 05a7ecf..d051dac 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicAnd(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_152966();
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.dxc.hlsl
index c331378..22888ea 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAnd(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_152966()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.fxc.hlsl
index c331378..22888ea 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicAnd(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_152966()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl
index 3cc5560..e92f03f 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAnd_152966();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAnd_152966();
 }
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.spvasm
index 951fe9b..7f05653 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAnd_152966 "atomicAnd_152966"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.wgsl
index c8cbad1..fcc8ad0 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_152966();
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl
index 33fa03c..808983e 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicAnd(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicAnd(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_34edd3();
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.dxc.hlsl
index fe65cfc..6598b17 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAnd_34edd3() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.fxc.hlsl
index fe65cfc..6598b17 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicAnd_34edd3() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.glsl
index 40139ba..ff6be65 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicAnd_34edd3() {
   uint arg_1 = 1u;
   uint res = atomicAnd(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAnd_34edd3();
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm
index 7a4131d..2ec12d7 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAnd_34edd3 "atomicAnd_34edd3"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.wgsl
index 3b44a88..a0a346f 100644
--- a/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/34edd3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicAnd_34edd3() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_34edd3();
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl
index 8123414..ffada1e 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicAnd(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicAnd(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_45a819();
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.dxc.hlsl
index 66ba3c0..fc0983b 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAnd_45a819() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.fxc.hlsl
index 66ba3c0..fc0983b 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicAnd_45a819() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.glsl
index 8f8ca9d..0f2dcb3 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicAnd_45a819() {
   int arg_1 = 1;
   int res = atomicAnd(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicAnd_45a819();
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm
index 4b92990..3702d02 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicAnd_45a819 "atomicAnd_45a819"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.wgsl
index d747600..e025e4a 100644
--- a/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/45a819.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicAnd_45a819() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicAnd_45a819();
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl
index e044a84..4a8c22b 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicAnd(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_85a8d9();
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl
index dcdf7cf..8cc836e 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAnd(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_85a8d9()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl
index dcdf7cf..8cc836e 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicAnd(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicAnd_85a8d9()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl
index 552a8ab..0352857 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicAnd_85a8d9();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicAnd_85a8d9();
 }
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.spvasm
index 0a6b109..d9f8914 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicAnd_85a8d9 "atomicAnd_85a8d9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.wgsl
index e2aeecb..96d9fc9 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicAnd_85a8d9();
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl
index 7c9c780..eca9b9f 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<i32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicCompareExchangeWeak(ptr<storage, atomic<i32>, read_write>, i32, i32) -> __atomic_compare_exchange_result<i32>
 fn atomicCompareExchangeWeak_1bd40a() {
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl
index 3b12206..72ad802 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
   int old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_i32 sb_rwatomicCompareExchangeWeak(uint offset, int compare, int value) {
   atomic_compare_exchange_result_i32 result=(atomic_compare_exchange_result_i32)0;
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl
index 3b12206..72ad802 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
   int old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_i32 sb_rwatomicCompareExchangeWeak(uint offset, int compare, int value) {
   atomic_compare_exchange_result_i32 result=(atomic_compare_exchange_result_i32)0;
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
index 70c6e08..e6f58d9 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
@@ -12,7 +12,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -45,7 +45,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm
index 89a22d3..8bedd3e 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.spvasm
@@ -27,7 +27,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
                OpMemberDecorate %__atomic_compare_exchange_result_i32 0 Offset 0
                OpMemberDecorate %__atomic_compare_exchange_result_i32 1 Offset 4
         %int = OpTypeInt 32 1
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl
index 45c7278..23940cd 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<i32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicCompareExchangeWeak_1bd40a() {
   var arg_1 = 1i;
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl
index 7338c45..70eac98 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<u32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicCompareExchangeWeak(ptr<storage, atomic<u32>, read_write>, u32, u32) -> __atomic_compare_exchange_result<u32>
 fn atomicCompareExchangeWeak_63d8e6() {
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl
index 2185449..c1804c6 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.dxc.hlsl
@@ -2,7 +2,7 @@
   uint old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_u32 sb_rwatomicCompareExchangeWeak(uint offset, uint compare, uint value) {
   atomic_compare_exchange_result_u32 result=(atomic_compare_exchange_result_u32)0;
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl
index 2185449..c1804c6 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.fxc.hlsl
@@ -2,7 +2,7 @@
   uint old_value;
   bool exchanged;
 };
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 atomic_compare_exchange_result_u32 sb_rwatomicCompareExchangeWeak(uint offset, uint compare, uint value) {
   atomic_compare_exchange_result_u32 result=(atomic_compare_exchange_result_u32)0;
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
index b05a83a..6e89274 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
@@ -12,7 +12,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -45,7 +45,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm
index 18e429b..96676e4 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.spvasm
@@ -27,7 +27,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
                OpMemberDecorate %__atomic_compare_exchange_result_u32 0 Offset 0
                OpMemberDecorate %__atomic_compare_exchange_result_u32 1 Offset 4
        %uint = OpTypeInt 32 0
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl
index aa6b1d7..6c674d5 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<u32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicCompareExchangeWeak_63d8e6() {
   var arg_1 = 1u;
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl
index e0814ac..6f7f93f 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicExchange(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicExchange(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_0a5dca();
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl
index bf4d283..ee84312 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicExchange_0a5dca() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl
index bf4d283..ee84312 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicExchange_0a5dca() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.glsl
index 8f56ea6..776e698 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicExchange_0a5dca() {
   uint arg_1 = 1u;
   uint res = atomicExchange(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicExchange_0a5dca();
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm
index 11d8cda..109758f 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicExchange_0a5dca "atomicExchange_0a5dca"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.wgsl
index da49248..7a3b92e 100644
--- a/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/0a5dca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicExchange_0a5dca() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_0a5dca();
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl
index b4e3788..55e4d2f 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicExchange(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_d59712();
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.dxc.hlsl
index 7d79b65..b12becd 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicExchange(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_d59712()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.fxc.hlsl
index 7d79b65..b12becd 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicExchange(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_d59712()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl
index e4b25a1..280b9bd 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicExchange_d59712();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicExchange_d59712();
 }
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.spvasm
index 8427c44..6d60374 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicExchange_d59712 "atomicExchange_d59712"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.wgsl
index 253b209..4d86a08 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_d59712();
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl
index 6d2c86d..2371e46 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicExchange(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicExchange(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_e114ba();
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.dxc.hlsl
index 85bde26..1ed6b13 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicExchange_e114ba() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.fxc.hlsl
index 85bde26..1ed6b13 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicExchange_e114ba() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.glsl
index 7250149..0169cfb 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicExchange_e114ba() {
   int arg_1 = 1;
   int res = atomicExchange(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicExchange_e114ba();
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm
index 3606b68..53e2dc6 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicExchange_e114ba "atomicExchange_e114ba"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.wgsl
index eeffbc8..edf4a6a 100644
--- a/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/e114ba.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicExchange_e114ba() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicExchange_e114ba();
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl
index bf52c03..fb945eb 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicExchange(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_f2e22f();
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl
index 5be7c25..e57f4ce 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicExchange(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl
index 5be7c25..e57f4ce 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicExchange(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicExchange_f2e22f()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl
index 565f1ac..52dd8ca 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicExchange_f2e22f();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicExchange_f2e22f();
 }
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.spvasm
index 91aca11..2bc8de7 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicExchange_f2e22f "atomicExchange_f2e22f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.wgsl
index 507deab..f8df7db 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicExchange_f2e22f();
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl
index 795a031..83186e8 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -44,8 +47,6 @@
   var res: i32 = atomicLoad(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_0806ad();
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.dxc.hlsl
index b94cd03..c0628a9 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.fxc.hlsl
index b94cd03..c0628a9 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_0806ad()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl
index ea7cd65..8ad120d 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicLoad_0806ad();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicLoad_0806ad();
 }
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.spvasm
index fd5a06d..e161f65 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicLoad_0806ad "atomicLoad_0806ad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.wgsl
index 2c903b2..233e7a5 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_0806ad();
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl
index 6473b82..c9dbddc 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicLoad(ptr<workgroup, atomic<u32>, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = atomicLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_361bf1();
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.dxc.hlsl
index fcce762..ec330e3 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicLoad_361bf1() {
   uint atomic_result_1 = 0u;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.fxc.hlsl
index fcce762..ec330e3 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicLoad_361bf1() {
   uint atomic_result_1 = 0u;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.glsl
index 8d499d9..65d5886 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicLoad_361bf1() {
   uint res = atomicOr(arg_0, 0u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicLoad_361bf1();
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm
index a89c037..55a9239 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicLoad_361bf1 "atomicLoad_361bf1"
@@ -27,11 +27,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.wgsl
index 4048461..2b2b438 100644
--- a/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/361bf1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicLoad_361bf1() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_361bf1();
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl
index e750890..6e3d140 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicLoad(ptr<workgroup, atomic<i32>, read_write>) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = atomicLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_afcc03();
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.dxc.hlsl
index 72a398c..027d415 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicLoad_afcc03() {
   int atomic_result_1 = 0;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.fxc.hlsl
index 72a398c..027d415 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicLoad_afcc03() {
   int atomic_result_1 = 0;
   InterlockedOr(arg_0, 0, atomic_result_1);
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.glsl
index f900036..6ba0c3a 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.glsl
@@ -8,15 +8,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicLoad_afcc03() {
   int res = atomicOr(arg_0, 0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicLoad_afcc03();
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm
index 8c12b2d..b811840 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicLoad_afcc03 "atomicLoad_afcc03"
@@ -28,11 +28,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.wgsl
index 5ad6ac5..10a08d8 100644
--- a/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/afcc03.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicLoad_afcc03() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicLoad_afcc03();
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl
index 4db312c..0475140 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -44,8 +47,6 @@
   var res: u32 = atomicLoad(&sb_rw.arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_fe6cc3();
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl
index f415ea1..9102a89 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_fe6cc3()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl
index f415ea1..9102a89 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicLoad(uint offset) {
@@ -12,8 +14,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicLoad_fe6cc3()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl
index 4818a88..1e51e81 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicLoad_fe6cc3();
 }
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -42,10 +46,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicLoad_fe6cc3();
 }
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.spvasm
index 43ae670..663e2ec 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.spvasm
@@ -9,35 +9,35 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicLoad_fe6cc3 "atomicLoad_fe6cc3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
      %uint_0 = OpConstant %uint 0
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.wgsl
index 34e21b9..c43a33a 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicLoad_fe6cc3();
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl
index 9029995..d8bc113 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicMax(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_51b9be();
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.dxc.hlsl
index d6a71b4..2204ef9 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMax(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_51b9be()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.fxc.hlsl
index d6a71b4..2204ef9 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMax(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_51b9be()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl
index 1244406..60a605e 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMax_51b9be();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMax_51b9be();
 }
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.spvasm
index 83da216..6da3656 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMax_51b9be "atomicMax_51b9be"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.wgsl
index 6cf8e9d..89d168c 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_51b9be();
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl
index 1235a34..76d1c86 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicMax(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_92aa72();
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.dxc.hlsl
index 006c801..9ee9640 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMax(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.fxc.hlsl
index 006c801..9ee9640 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMax(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMax_92aa72()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl
index 1235c39..a9200b1 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMax_92aa72();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMax_92aa72();
 }
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.spvasm
index b95e0fd..e2d9a7e 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMax_92aa72 "atomicMax_92aa72"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.wgsl
index bf3956e..c732683 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMax_92aa72();
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl
index 1daa0a8..4c54d46 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicMax(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicMax(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_a89cc3();
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.dxc.hlsl
index 2f68534..de43b4f 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMax_a89cc3() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.fxc.hlsl
index 2f68534..de43b4f 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMax_a89cc3() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.glsl
index 40e82f2..b730d8a 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicMax_a89cc3() {
   int arg_1 = 1;
   int res = atomicMax(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMax_a89cc3();
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm
index b06b8b1..6780694 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMax_a89cc3 "atomicMax_a89cc3"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.wgsl
index d30e674..f221337 100644
--- a/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/a89cc3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicMax_a89cc3() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_a89cc3();
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl
index 153d8d4..783b99e 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicMax(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicMax(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_beccfc();
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.dxc.hlsl
index 28390b6..09c31e8 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMax_beccfc() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.fxc.hlsl
index 28390b6..09c31e8 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMax_beccfc() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.glsl
index 4174734..c465efe 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicMax_beccfc() {
   uint arg_1 = 1u;
   uint res = atomicMax(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMax_beccfc();
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm
index 17c2b2d..a8cdbb4 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMax_beccfc "atomicMax_beccfc"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.wgsl
index 2c7bd71..d1ed1c3 100644
--- a/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMax/beccfc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicMax_beccfc() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMax_beccfc();
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl
index f7b1e98..ed16854 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicMin(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicMin(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_278235();
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.dxc.hlsl
index 9892de6..1e2789f 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMin_278235() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.fxc.hlsl
index 9892de6..1e2789f 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicMin_278235() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.glsl
index 21b647a..c3559fa 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicMin_278235() {
   int arg_1 = 1;
   int res = atomicMin(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMin_278235();
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm
index 86612aa..4ff0ccb 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMin_278235 "atomicMin_278235"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.wgsl
index ea97e3d..8a9d928 100644
--- a/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/278235.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicMin_278235() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_278235();
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl
index 4f0e5b4..2c7ce28 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicMin(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicMin(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_69d383();
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.dxc.hlsl
index 81a22da..a396a26 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMin_69d383() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.fxc.hlsl
index 81a22da..a396a26 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicMin_69d383() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.glsl
index fb1eba8..00307cd 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicMin_69d383() {
   uint arg_1 = 1u;
   uint res = atomicMin(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicMin_69d383();
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm
index d7addf2..c1edb6e 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicMin_69d383 "atomicMin_69d383"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.wgsl
index 7149216..4c41cd9 100644
--- a/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/69d383.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicMin_69d383() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicMin_69d383();
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl
index 7efef7c..687ee9a 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicMin(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_8e38dc();
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.dxc.hlsl
index 2c45cad..2395a76 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMin(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.fxc.hlsl
index 2c45cad..2395a76 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicMin(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_8e38dc()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl
index 8194707..82fe996 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMin_8e38dc();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMin_8e38dc();
 }
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.spvasm
index 528c07a..6d7f58b 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMin_8e38dc "atomicMin_8e38dc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.wgsl
index 9de402c..5e05f34 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_8e38dc();
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl
index d1d09a4..36f8017 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicMin(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_c67a74();
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.dxc.hlsl
index dc83cb2..614145b 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMin(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_c67a74()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.fxc.hlsl
index dc83cb2..614145b 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicMin(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicMin_c67a74()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl
index 3b759b1..b06c5fa 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicMin_c67a74();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicMin_c67a74();
 }
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.spvasm
index 423c734..b5cd002 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicMin_c67a74 "atomicMin_c67a74"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.wgsl
index 71d2223..b29c138 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicMin_c67a74();
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl
index ef91dc0..95611dc 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicOr(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicOr(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_5e3d61();
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.dxc.hlsl
index f67e300..9a0bdd4 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicOr_5e3d61() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.fxc.hlsl
index f67e300..9a0bdd4 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicOr_5e3d61() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.glsl
index 11994fb..c3f9669 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicOr_5e3d61() {
   uint arg_1 = 1u;
   uint res = atomicOr(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicOr_5e3d61();
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm
index 598d8fc..af05388 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicOr_5e3d61 "atomicOr_5e3d61"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.wgsl
index e537dfd..414e14d 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e3d61.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicOr_5e3d61() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_5e3d61();
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl
index 7c3360f..e7471b0 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicOr(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_5e95d4();
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.dxc.hlsl
index bb5f182..daf6c5d 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicOr(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_5e95d4()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.fxc.hlsl
index bb5f182..daf6c5d 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicOr(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_5e95d4()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl
index 0bb1cc7..b41e3e7 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicOr_5e95d4();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicOr_5e95d4();
 }
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.spvasm
index 61f36de..c8ad4f4 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicOr_5e95d4 "atomicOr_5e95d4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.wgsl
index 7453da9..e0a5602 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_5e95d4();
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl
index 79bfe6b..7f10526 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicOr(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_8d96a0();
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.dxc.hlsl
index 00e9a5d..e6d86f2 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicOr(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.fxc.hlsl
index 00e9a5d..e6d86f2 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicOr(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicOr_8d96a0()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl
index a5c26c1..461178e 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicOr_8d96a0();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicOr_8d96a0();
 }
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.spvasm
index e3286d2..07d80db 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicOr_8d96a0 "atomicOr_8d96a0"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.wgsl
index 966b210..7e08126 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicOr_8d96a0();
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl
index 8b364a6..62c34b5 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicOr(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicOr(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_d09248();
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.dxc.hlsl
index 9400d19..7f1a000 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicOr_d09248() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.fxc.hlsl
index 9400d19..7f1a000 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicOr_d09248() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.glsl
index d90d1da..93f295c 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicOr_d09248() {
   int arg_1 = 1;
   int res = atomicOr(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicOr_d09248();
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm
index ec1faa4..d609c5c 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicOr_d09248 "atomicOr_d09248"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.wgsl
index e826d51..64e8407 100644
--- a/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicOr/d09248.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicOr_d09248() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicOr_d09248();
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl
index daff6d9..dfb1d24 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<u32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicStore(ptr<storage, atomic<u32>, read_write>, u32)
 fn atomicStore_cdc29e() {
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.dxc.hlsl
index c588100..a23dd31 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.dxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, uint value) {
   uint ignored;
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.fxc.hlsl
index c588100..a23dd31 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, uint value) {
   uint ignored;
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl
index aaac436..734e669 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -29,7 +29,7 @@
   uint arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.spvasm
index 9f2635a..896327a 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.spvasm
@@ -22,7 +22,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
        %uint = OpTypeInt 32 0
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.wgsl
index fefa86f..437c69e 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<u32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicStore_cdc29e() {
   var arg_1 = 1u;
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl
index 29ccc92..6e07842 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl
@@ -37,7 +37,7 @@
 struct SB_RW {
   arg_0: atomic<i32>,
 };
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 // fn atomicStore(ptr<storage, atomic<i32>, read_write>, i32)
 fn atomicStore_d1e9a6() {
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl
index c356f5e..ddbf36b 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.dxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, int value) {
   int ignored;
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl
index c356f5e..ddbf36b 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.fxc.hlsl
@@ -1,4 +1,4 @@
-RWByteAddressBuffer sb_rw : register(u1);
+RWByteAddressBuffer sb_rw : register(u0);
 
 void sb_rwatomicStore(uint offset, int value) {
   int ignored;
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl
index 0d107c7..7e21b98 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -6,7 +6,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
@@ -29,7 +29,7 @@
   int arg_0;
 };
 
-layout(binding = 1, std430) buffer sb_rw_block_ssbo {
+layout(binding = 0, std430) buffer sb_rw_block_ssbo {
   SB_RW inner;
 } sb_rw;
 
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.spvasm
index 2898fa5..3fe6d81 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.spvasm
@@ -22,7 +22,7 @@
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
-               OpDecorate %sb_rw Binding 1
+               OpDecorate %sb_rw Binding 0
         %int = OpTypeInt 32 1
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.wgsl
index 6a06b81..3107abd 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.wgsl
@@ -2,7 +2,7 @@
   arg_0 : atomic<i32>,
 }
 
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
 
 fn atomicStore_d1e9a6() {
   var arg_1 = 1i;
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl
index 8e8b32d..f5f4ba4 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicSub(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_051100();
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.dxc.hlsl
index 74e5f50..171d8cd 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicSub(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_051100()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.fxc.hlsl
index 74e5f50..171d8cd 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicSub(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_051100()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl
index de0484e..d193f70 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicSub_051100();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicSub_051100();
 }
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.spvasm
index 4135d53..f7fe756 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicSub_051100 "atomicSub_051100"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.wgsl
index 1cf2d46..346eee5 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_051100();
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl
index 0fff2e0..49bd2f0 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicSub(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicSub(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_0d26c2();
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.dxc.hlsl
index bd2738a..490bd72 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicSub_0d26c2() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.fxc.hlsl
index bd2738a..490bd72 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicSub_0d26c2() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.glsl
index 61e5cea..df1bb55 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicSub_0d26c2() {
   uint arg_1 = 1u;
   uint res = atomicAdd(arg_0, -(arg_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicSub_0d26c2();
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm
index 3137d8b..c903f65 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicSub_0d26c2 "atomicSub_0d26c2"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.wgsl
index 4f6f1cb..a22bec3 100644
--- a/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/0d26c2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicSub_0d26c2() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_0d26c2();
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl
index a2dacb5..53300e1 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicSub(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_15bfc9();
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.dxc.hlsl
index d8070c3..706ba06 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicSub(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_15bfc9()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.fxc.hlsl
index d8070c3..706ba06 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicSub(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicSub_15bfc9()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl
index 7e432e8..c356209 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicSub_15bfc9();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicSub_15bfc9();
 }
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.spvasm
index 2814f2c..807b188 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicSub_15bfc9 "atomicSub_15bfc9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.wgsl
index 698271a..2bff8e3 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicSub_15bfc9();
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl
index 85842ff..e198276 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicSub(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicSub(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_77883a();
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.dxc.hlsl
index 679aa9c..17a378c 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicSub_77883a() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.fxc.hlsl
index 679aa9c..17a378c 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicSub_77883a() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.glsl
index c2c94cd..499d11c 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicSub_77883a() {
   int arg_1 = 1;
   int res = atomicAdd(arg_0, -(arg_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicSub_77883a();
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm
index 508ab74..c9b9085 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicSub_77883a "atomicSub_77883a"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.wgsl
index 85c6398..9346c93 100644
--- a/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicSub/77883a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicSub_77883a() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicSub_77883a();
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl
index 355a05d..7bacca2 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0: atomic<u32>,
 };
@@ -45,8 +48,6 @@
   var res: u32 = atomicXor(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_54510e();
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.dxc.hlsl
index f7b756b..244b22a 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicXor(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_54510e()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.fxc.hlsl
index f7b756b..244b22a 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 uint sb_rwatomicXor(uint offset, uint value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_54510e()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl
index 083e91e..159bcdc 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicXor_54510e();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 struct SB_RW {
   uint arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicXor_54510e();
 }
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.spvasm
index 99552bf..bfb3e64 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicXor_54510e "atomicXor_54510e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
        %uint = OpTypeInt 32 0
+%prevent_dce_block = OpTypeStruct %uint
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %uint
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %uint
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.wgsl
index a602cc7..1ab1324 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 struct SB_RW {
   arg_0 : atomic<u32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_54510e();
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl
index b9422f9..f4ba807 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: atomic<i32>;
 
 // fn atomicXor(ptr<workgroup, atomic<i32>, read_write>, i32) -> i32
@@ -42,8 +45,6 @@
   var res: i32 = atomicXor(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_75dc95();
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.dxc.hlsl
index 3225558..060c757 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicXor_75dc95() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.fxc.hlsl
index 3225558..060c757 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int atomicXor_75dc95() {
   int arg_1 = 1;
   int atomic_result_1 = 0;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.glsl
index 2bbbd29..b06bd5f 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int atomicXor_75dc95() {
   int arg_1 = 1;
   int res = atomicXor(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicXor_75dc95();
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm
index c2cdbfc..40dfe3f 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicXor_75dc95 "atomicXor_75dc95"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.wgsl
index 841a0d5..777e82b 100644
--- a/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/75dc95.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : atomic<i32>;
 
 fn atomicXor_75dc95() -> i32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_75dc95();
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl
index 09fc7c4..3621692 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0: atomic<i32>,
 };
@@ -45,8 +48,6 @@
   var res: i32 = atomicXor(&sb_rw.arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_c1b78c();
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.dxc.hlsl
index 0705b84..ba14f5e 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicXor(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.fxc.hlsl
index 0705b84..ba14f5e 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 RWByteAddressBuffer sb_rw : register(u1);
 
 int sb_rwatomicXor(uint offset, int value) {
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(atomicXor_c1b78c()));
   return;
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl
index 3a53303..b7c59e5 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = atomicXor_c1b78c();
 }
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 struct SB_RW {
   int arg_0;
 };
@@ -44,10 +48,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main() {
   prevent_dce.inner = atomicXor_c1b78c();
 }
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.spvasm
index 2c775eb..90d0480 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.spvasm
@@ -9,36 +9,36 @@
                OpEntryPoint GLCompute %compute_main "compute_main"
                OpExecutionMode %fragment_main OriginUpperLeft
                OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %prevent_dce_block "prevent_dce_block"
+               OpMemberName %prevent_dce_block 0 "inner"
+               OpName %prevent_dce "prevent_dce"
                OpName %sb_rw_block "sb_rw_block"
                OpMemberName %sb_rw_block 0 "inner"
                OpName %SB_RW "SB_RW"
                OpMemberName %SB_RW 0 "arg_0"
                OpName %sb_rw "sb_rw"
-               OpName %prevent_dce_block "prevent_dce_block"
-               OpMemberName %prevent_dce_block 0 "inner"
-               OpName %prevent_dce "prevent_dce"
                OpName %atomicXor_c1b78c "atomicXor_c1b78c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
                OpName %compute_main "compute_main"
+               OpDecorate %prevent_dce_block Block
+               OpMemberDecorate %prevent_dce_block 0 Offset 0
+               OpDecorate %prevent_dce DescriptorSet 0
+               OpDecorate %prevent_dce Binding 0
                OpDecorate %sb_rw_block Block
                OpMemberDecorate %sb_rw_block 0 Offset 0
                OpMemberDecorate %SB_RW 0 Offset 0
                OpDecorate %sb_rw DescriptorSet 0
                OpDecorate %sb_rw Binding 1
-               OpDecorate %prevent_dce_block Block
-               OpMemberDecorate %prevent_dce_block 0 Offset 0
-               OpDecorate %prevent_dce DescriptorSet 0
-               OpDecorate %prevent_dce Binding 0
         %int = OpTypeInt 32 1
+%prevent_dce_block = OpTypeStruct %int
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
       %SB_RW = OpTypeStruct %int
 %sb_rw_block = OpTypeStruct %SB_RW
 %_ptr_StorageBuffer_sb_rw_block = OpTypePointer StorageBuffer %sb_rw_block
       %sb_rw = OpVariable %_ptr_StorageBuffer_sb_rw_block StorageBuffer
-%prevent_dce_block = OpTypeStruct %int
-%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
-%prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
           %9 = OpTypeFunction %int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.wgsl
index f44dc9a..38d8118 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 struct SB_RW {
   arg_0 : atomic<i32>,
 }
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = atomicXor_c1b78c();
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl
index 93ff9c7..15e102b 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: atomic<u32>;
 
 // fn atomicXor(ptr<workgroup, atomic<u32>, read_write>, u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = atomicXor(&arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_c8e6be();
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.dxc.hlsl
index a929bd4..f602149 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.dxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicXor_c8e6be() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.fxc.hlsl
index a929bd4..f602149 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.fxc.hlsl
@@ -8,6 +8,8 @@
   GroupMemoryBarrierWithGroupSync();
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint atomicXor_c8e6be() {
   uint arg_1 = 1u;
   uint atomic_result_1 = 0u;
@@ -16,8 +18,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.glsl
index f2e058e..cdf1410 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint atomicXor_c8e6be() {
   uint arg_1 = 1u;
   uint res = atomicXor(arg_0, arg_1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = atomicXor_c8e6be();
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm
index 4af8a08..c1110ac 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %atomicXor_c8e6be "atomicXor_c8e6be"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.wgsl
index 0ff9ed3..4aaf14b 100644
--- a/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/atomicXor/c8e6be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : atomic<u32>;
 
 fn atomicXor_c8e6be() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = atomicXor_c8e6be();
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl
index cb0c362..b3a1e5f 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn bitcast<T: vec<3, f32>>(vec<3, u32>) -> vec<3, f32>
 fn bitcast_0fe0c9() -> vec3<f32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<f32> = bitcast<vec3<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_0fe0c9();
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.dxc.hlsl
index 7b4f287..ccd4714 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_0fe0c9() {
   uint3 arg_0 = (1u).xxx;
   float3 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.fxc.hlsl
index 7b4f287..ccd4714 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_0fe0c9() {
   uint3 arg_0 = (1u).xxx;
   float3 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_0fe0c9()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.glsl
index ffe45e6..f3f7623 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 bitcast_0fe0c9() {
   uvec3 arg_0 = uvec3(1u);
   vec3 res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 bitcast_0fe0c9() {
   uvec3 arg_0 = uvec3(1u);
   vec3 res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.wgsl
index ec6ba58..25b281c 100644
--- a/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/0fe0c9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn bitcast_0fe0c9() -> vec3<f32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<f32> = bitcast<vec3<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_0fe0c9();
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl
index 76dc1d9..9e70f4a 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, ia>) -> vec<4, u32>
 fn bitcast_160c09() -> vec4<u32>{
   const arg_0 = vec4(1);
   var res: vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_160c09();
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.dxc.hlsl
index e41e53a..9e07701 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_160c09() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_160c09()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.fxc.hlsl
index e41e53a..9e07701 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_160c09() {
   uint4 res = (1u).xxxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_160c09()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.glsl
index 1edce90..c9610f9 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_160c09() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_160c09() {
   uvec4 res = uvec4(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.wgsl
index a7eca900..c09ce44 100644
--- a/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/160c09.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_160c09() -> vec4<u32> {
   const arg_0 = vec4(1);
   var res : vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_160c09();
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl
index b026c70..f90b9e2 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(f32) -> i32
 fn bitcast_16cba4() -> i32{
   var arg_0 = 1.f;
   var res: i32 = bitcast<i32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_16cba4();
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.dxc.hlsl
index 296783c..7b18d9a 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_16cba4() {
   float arg_0 = 1.0f;
   int res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_16cba4()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.fxc.hlsl
index 296783c..7b18d9a 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_16cba4() {
   float arg_0 = 1.0f;
   int res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_16cba4()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.glsl
index 47dd5e2..d3caa7b 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_16cba4() {
   float arg_0 = 1.0f;
   int res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_16cba4() {
   float arg_0 = 1.0f;
   int res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.wgsl
index 96bfe2f..7e2251d 100644
--- a/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/16cba4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_16cba4() -> i32 {
   var arg_0 = 1.0f;
   var res : i32 = bitcast<i32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_16cba4();
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl
index ccb5367..8d7d4e1 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, i32>) -> vec<2, u32>
 fn bitcast_1c3b31() -> vec2<u32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1c3b31();
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.dxc.hlsl
index f5c1a02..43e809a 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_1c3b31() {
   int2 arg_0 = (1).xx;
   uint2 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_1c3b31()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.fxc.hlsl
index f5c1a02..43e809a 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_1c3b31() {
   int2 arg_0 = (1).xx;
   uint2 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_1c3b31()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.glsl
index 1bcea30..6aceac1 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_1c3b31() {
   ivec2 arg_0 = ivec2(1);
   uvec2 res = uvec2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_1c3b31() {
   ivec2 arg_0 = ivec2(1);
   uvec2 res = uvec2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.wgsl
index f808095..35f064b 100644
--- a/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/1c3b31.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_1c3b31() -> vec2<u32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1c3b31();
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl
index 07e5b12..20cc1a9 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec<2, f16>>(vec<2, f16>) -> vec<2, f16>
 fn bitcast_1df11f() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1df11f();
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.dxc.hlsl
index 8012e1d..5befc41 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_1df11f() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_1df11f());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.glsl
index 176c7b0..cf801d5 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_1df11f() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_1df11f() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.wgsl
index 27fea51..7f2a9b8 100644
--- a/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/1df11f.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_1df11f() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_1df11f();
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl
index 238155b..a19e265 100644
--- a/test/tint/builtins/gen/var/bitcast/214f23.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec2<i32>>(vec4<f16>) -> vec2<i32>
 fn bitcast_214f23() -> vec2<i32>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_214f23();
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.dxc.hlsl
index 9a11d8a..ac640b0 100644
--- a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asint(uint2((r.x & 0xffff) | ((r.y & 0xffff) << 16), (r.z & 0xffff) | ((r.w & 0xffff) << 16)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_214f23() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   int2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_214f23()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.glsl
index f182a89..e524ebd 100644
--- a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return ivec2(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_214f23() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   ivec2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -39,16 +39,16 @@
   return ivec2(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_214f23() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   ivec2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.wgsl
index 56e56cd..a5980eb 100644
--- a/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/214f23.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_214f23() -> vec2<i32> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_214f23();
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl
index 69502c0..89fcfc9 100644
--- a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(vec2<f16>) -> f32
 fn bitcast_23c8bd() -> f32{
   var arg_0 = vec2<f16>(1.h);
   var res: f32 = bitcast<f32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_23c8bd();
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.dxc.hlsl
index 99f3ffd..4772790 100644
--- a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asfloat(uint((r.x & 0xffff) | ((r.y & 0xffff) << 16)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_23c8bd() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   float res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_23c8bd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.glsl
index 1ec2cb5..6b8864a 100644
--- a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return uintBitsToFloat(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_23c8bd() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   float res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -39,16 +39,16 @@
   return uintBitsToFloat(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_23c8bd() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   float res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.wgsl
index 949c8f0..9bfd3c0 100644
--- a/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/23c8bd.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_23c8bd() -> f32 {
   var arg_0 = vec2<f16>(1.0h);
   var res : f32 = bitcast<f32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_23c8bd();
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl
index fe824a0..15c1619 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec<2, f32>>(vec<2, u32>) -> vec<2, f32>
 fn bitcast_2421c8() -> vec2<f32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2421c8();
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.dxc.hlsl
index b952191..61ae45e 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2421c8() {
   uint2 arg_0 = (1u).xx;
   float2 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.fxc.hlsl
index b952191..61ae45e 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2421c8() {
   uint2 arg_0 = (1u).xx;
   float2 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2421c8()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.glsl
index b855a5f..7f78880 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2421c8() {
   uvec2 arg_0 = uvec2(1u);
   vec2 res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2421c8() {
   uvec2 arg_0 = uvec2(1u);
   vec2 res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.wgsl
index 6c57291..1dcc21c 100644
--- a/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2421c8.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_2421c8() -> vec2<f32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2421c8();
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl
index cb32166..96f0516 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, i32>) -> vec<3, u32>
 fn bitcast_287bdf() -> vec3<u32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_287bdf();
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.dxc.hlsl
index b235d1a..6684065 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_287bdf() {
   int3 arg_0 = (1).xxx;
   uint3 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_287bdf()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.fxc.hlsl
index b235d1a..6684065 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_287bdf() {
   int3 arg_0 = (1).xxx;
   uint3 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_287bdf()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.glsl
index 9bf4873..f472ec1 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 bitcast_287bdf() {
   ivec3 arg_0 = ivec3(1);
   uvec3 res = uvec3(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 bitcast_287bdf() {
   ivec3 arg_0 = ivec3(1);
   uvec3 res = uvec3(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.wgsl
index 782e915..f78a88e 100644
--- a/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/287bdf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_287bdf() -> vec3<u32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_287bdf();
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl
index db1e7c7..53bd7b7 100644
--- a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec2<f32>>(vec4<f16>) -> vec2<f32>
 fn bitcast_2a6e58() -> vec2<f32>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2a6e58();
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.dxc.hlsl
index f508932..ac51453 100644
--- a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asfloat(uint2((r.x & 0xffff) | ((r.y & 0xffff) << 16), (r.z & 0xffff) | ((r.w & 0xffff) << 16)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_2a6e58() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   float2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2a6e58()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.glsl
index 04713a2..3348a4f 100644
--- a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return uintBitsToFloat(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2a6e58() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   vec2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -39,16 +39,16 @@
   return uintBitsToFloat(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_2a6e58() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   vec2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.wgsl
index 6184278..6a51bed 100644
--- a/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2a6e58.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_2a6e58() -> vec2<f32> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2a6e58();
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl
index 6a3d4bc..831ff4a 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn bitcast<T: vec<3, f32>>(vec<3, f32>) -> vec<3, f32>
 fn bitcast_2b05b3() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = bitcast<vec3<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b05b3();
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.dxc.hlsl
index 8656d7d..db92f60 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_2b05b3() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.fxc.hlsl
index 8656d7d..db92f60 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_2b05b3() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_2b05b3()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.glsl
index 63a17a0..0f34e3f 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 bitcast_2b05b3() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 bitcast_2b05b3() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.wgsl
index 177e1db..ad628ac 100644
--- a/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2b05b3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn bitcast_2b05b3() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = bitcast<vec3<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b05b3();
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl
index fdd8ff0..507e29a 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, f32>) -> vec<2, u32>
 fn bitcast_2b2738() -> vec2<u32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b2738();
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.dxc.hlsl
index 58d1754..b7338dd 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_2b2738() {
   float2 arg_0 = (1.0f).xx;
   uint2 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2b2738()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.fxc.hlsl
index 58d1754..b7338dd 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_2b2738() {
   float2 arg_0 = (1.0f).xx;
   uint2 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_2b2738()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.glsl
index 86ace3f..4b840fb 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_2b2738() {
   vec2 arg_0 = vec2(1.0f);
   uvec2 res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_2b2738() {
   vec2 arg_0 = vec2(1.0f);
   uvec2 res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.wgsl
index 801a730..be3056a 100644
--- a/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/2b2738.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_2b2738() -> vec2<u32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_2b2738();
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl
index f5ce92d..2839432 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(u32) -> u32
 fn bitcast_31c080() -> u32{
   var arg_0 = 1u;
   var res: u32 = bitcast<u32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_31c080();
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.dxc.hlsl
index 9c08f52..6027f37 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_31c080() {
   uint arg_0 = 1u;
   uint res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_31c080()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.fxc.hlsl
index 9c08f52..6027f37 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_31c080() {
   uint arg_0 = 1u;
   uint res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_31c080()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.glsl
index 6113e45..b9fea9a 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_31c080() {
   uint arg_0 = 1u;
   uint res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_31c080() {
   uint arg_0 = 1u;
   uint res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.wgsl
index b106f41..d0d1056 100644
--- a/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/31c080.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_31c080() -> u32 {
   var arg_0 = 1u;
   var res : u32 = bitcast<u32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_31c080();
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl
index b001c62..7028177 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn bitcast<T: vec<3, f32>>(vec<3, i32>) -> vec<3, f32>
 fn bitcast_332f78() -> vec3<f32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<f32> = bitcast<vec3<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_332f78();
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.dxc.hlsl
index f67cac9..993c969 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_332f78() {
   int3 arg_0 = (1).xxx;
   float3 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_332f78()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.fxc.hlsl
index f67cac9..993c969 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 bitcast_332f78() {
   int3 arg_0 = (1).xxx;
   float3 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_332f78()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.glsl
index 6769e04..c6f1a10 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 bitcast_332f78() {
   ivec3 arg_0 = ivec3(1);
   vec3 res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 bitcast_332f78() {
   ivec3 arg_0 = ivec3(1);
   vec3 res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.wgsl
index fbe8310..bd278ff 100644
--- a/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/332f78.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn bitcast_332f78() -> vec3<f32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<f32> = bitcast<vec3<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_332f78();
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl
index 69e7cf7..d96e9b5 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec<4, f16>>(vec<4, f16>) -> vec<4, f16>
 fn bitcast_3e7b47() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3e7b47();
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.dxc.hlsl
index c1d13ad..83abaab 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_3e7b47() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_3e7b47());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.glsl
index a4ddc9a..9a94319 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_3e7b47() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_3e7b47() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.wgsl
index 58bb4d1..fe7210b 100644
--- a/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/3e7b47.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_3e7b47() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3e7b47();
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl
index f5d6082..61cc5b9 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn bitcast<T: vec<4, i32>>(vec<4, i32>) -> vec<4, i32>
 fn bitcast_3f7437() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = bitcast<vec4<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3f7437();
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.dxc.hlsl
index 6f03bde..12c5c65 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_3f7437() {
   int4 arg_0 = (1).xxxx;
   int4 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.fxc.hlsl
index 6f03bde..12c5c65 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_3f7437() {
   int4 arg_0 = (1).xxxx;
   int4 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3f7437()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.glsl
index 0bf4c4b..8f5cf4c 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_3f7437() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_3f7437() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.wgsl
index 8a62a70..21960dc2 100644
--- a/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/3f7437.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn bitcast_3f7437() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = bitcast<vec4<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3f7437();
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl
index 00ae56f..6f110e7 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn bitcast<T: vec<4, f32>>(vec<4, i32>) -> vec<4, f32>
 fn bitcast_3fdacd() -> vec4<f32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<f32> = bitcast<vec4<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3fdacd();
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.dxc.hlsl
index cd5784a..4b5ba8a 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_3fdacd() {
   int4 arg_0 = (1).xxxx;
   float4 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.fxc.hlsl
index cd5784a..4b5ba8a 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_3fdacd() {
   int4 arg_0 = (1).xxxx;
   float4 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_3fdacd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.glsl
index c3e84d1..19c0909 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_3fdacd() {
   ivec4 arg_0 = ivec4(1);
   vec4 res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_3fdacd() {
   ivec4 arg_0 = ivec4(1);
   vec4 res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.wgsl
index bdbfb79..c27271c 100644
--- a/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/3fdacd.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn bitcast_3fdacd() -> vec4<f32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<f32> = bitcast<vec4<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_3fdacd();
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl
index dc4c73f..2a31f27 100644
--- a/test/tint/builtins/gen/var/bitcast/429d64.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec4<f16>>(vec2<f32>) -> vec4<f16>
 fn bitcast_429d64() -> vec4<f16>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_429d64();
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.dxc.hlsl
index 8b6af41..17d05a9 100644
--- a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.dxc.hlsl
@@ -5,14 +5,14 @@
   return vector<float16_t, 4>(t_low.x, t_high.x, t_low.y, t_high.y);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_429d64() {
   float2 arg_0 = (1.0f).xx;
   vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_429d64());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.glsl
index efc5c4e..80ab9d9 100644
--- a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.glsl
@@ -10,16 +10,16 @@
   return f16vec4(v_xy.x, v_xy.y, v_zw.x, v_zw.y);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_429d64() {
   vec2 arg_0 = vec2(1.0f);
   f16vec4 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -43,16 +43,16 @@
   return f16vec4(v_xy.x, v_xy.y, v_zw.x, v_zw.y);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_429d64() {
   vec2 arg_0 = vec2(1.0f);
   f16vec4 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.wgsl
index e3f7ae8..b3bdde1 100644
--- a/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/429d64.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_429d64() -> vec4<f16> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_429d64();
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl
index 5514926..6dce937 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn bitcast<T: f16>(f16) -> f16
 fn bitcast_436211() -> f16{
   var arg_0 = 1.h;
   var res: f16 = bitcast<f16>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_436211();
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.dxc.hlsl
index f7776e7..0e7d735 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t bitcast_436211() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, bitcast_436211());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.glsl
index cf284ee..f551e9a 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t bitcast_436211() {
   float16_t arg_0 = 1.0hf;
   float16_t res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t bitcast_436211() {
   float16_t arg_0 = 1.0hf;
   float16_t res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.wgsl
index 8618d2c..6661fb7 100644
--- a/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/436211.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn bitcast_436211() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = bitcast<f16>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_436211();
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl
index 8954b3b..1c918fe 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn bitcast<T: vec<3, f16>>(vec<3, f16>) -> vec<3, f16>
 fn bitcast_5081ed() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = bitcast<vec3<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_5081ed();
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.dxc.hlsl
index 9a44923..a32c257 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> bitcast_5081ed() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, bitcast_5081ed());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.glsl
index 5df5228..3515074 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 bitcast_5081ed() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 bitcast_5081ed() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.wgsl
index a065606..22fac68 100644
--- a/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/5081ed.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn bitcast_5081ed() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = bitcast<vec3<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_5081ed();
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl
index d6d9296..788be89 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, f32>) -> vec<3, u32>
 fn bitcast_56266e() -> vec3<u32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_56266e();
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.dxc.hlsl
index 8b1c15d..a90e379 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_56266e() {
   float3 arg_0 = (1.0f).xxx;
   uint3 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_56266e()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.fxc.hlsl
index 8b1c15d..a90e379 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_56266e() {
   float3 arg_0 = (1.0f).xxx;
   uint3 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_56266e()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.glsl
index 89b3cdf..7708c8d 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 bitcast_56266e() {
   vec3 arg_0 = vec3(1.0f);
   uvec3 res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 bitcast_56266e() {
   vec3 arg_0 = vec3(1.0f);
   uvec3 res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.wgsl
index 4cd7bcf..a7cb280 100644
--- a/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/56266e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_56266e() -> vec3<u32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_56266e();
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl
index 1108894..93b294f 100644
--- a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec2<f16>>(u32) -> vec2<f16>
 fn bitcast_66e93d() -> vec2<f16>{
   var arg_0 = 1u;
   var res: vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_66e93d();
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.dxc.hlsl
index 9fc9dc6..47f8df7 100644
--- a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.dxc.hlsl
@@ -5,14 +5,14 @@
   return vector<float16_t, 2>(t_low.x, t_high.x);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_66e93d() {
   uint arg_0 = 1u;
   vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_66e93d());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.glsl
index 535f991..4889a77 100644
--- a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return unpackFloat2x16(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_66e93d() {
   uint arg_0 = 1u;
   f16vec2 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -39,16 +39,16 @@
   return unpackFloat2x16(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_66e93d() {
   uint arg_0 = 1u;
   f16vec2 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.wgsl
index 4180ff7..c49271d 100644
--- a/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/66e93d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_66e93d() -> vec2<f16> {
   var arg_0 = 1u;
   var res : vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_66e93d();
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl b/test/tint/builtins/gen/var/bitcast/674557.wgsl
index e428ee8..b918b7e 100644
--- a/test/tint/builtins/gen/var/bitcast/674557.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec2<f16>>(i32) -> vec2<f16>
 fn bitcast_674557() -> vec2<f16>{
   var arg_0 = 1i;
   var res: vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_674557();
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.dxc.hlsl
index da34d39..fee125a 100644
--- a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.dxc.hlsl
@@ -5,14 +5,14 @@
   return vector<float16_t, 2>(t_low.x, t_high.x);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_674557() {
   int arg_0 = 1;
   vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_674557());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.glsl
index 64338aa..1aaa1d3 100644
--- a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return unpackFloat2x16(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_674557() {
   int arg_0 = 1;
   f16vec2 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -39,16 +39,16 @@
   return unpackFloat2x16(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_674557() {
   int arg_0 = 1;
   f16vec2 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.wgsl
index 693dc9e..c54c266 100644
--- a/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/674557.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_674557() -> vec2<f16> {
   var arg_0 = 1i;
   var res : vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_674557();
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl
index 34f2a87..4887c05 100644
--- a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(vec2<f16>) -> i32
 fn bitcast_6ac6f9() -> i32{
   var arg_0 = vec2<f16>(1.h);
   var res: i32 = bitcast<i32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6ac6f9();
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.dxc.hlsl
index 23436a6..97346b2 100644
--- a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asint(uint((r.x & 0xffff) | ((r.y & 0xffff) << 16)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_6ac6f9() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   int res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_6ac6f9()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.glsl
index 630431e..ea2a6c8 100644
--- a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return int(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_6ac6f9() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   int res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -39,16 +39,16 @@
   return int(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_6ac6f9() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   int res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.wgsl
index 0e1fc05..0e1d65c 100644
--- a/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/6ac6f9.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_6ac6f9() -> i32 {
   var arg_0 = vec2<f16>(1.0h);
   var res : i32 = bitcast<i32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6ac6f9();
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl
index c8edb95..677f706b 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn bitcast<T: vec<4, i32>>(vec<4, f32>) -> vec<4, i32>
 fn bitcast_6de2bd() -> vec4<i32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<i32> = bitcast<vec4<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6de2bd();
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.dxc.hlsl
index b3d6621..4bcfa7a 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_6de2bd() {
   float4 arg_0 = (1.0f).xxxx;
   int4 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.fxc.hlsl
index b3d6621..4bcfa7a 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_6de2bd() {
   float4 arg_0 = (1.0f).xxxx;
   int4 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_6de2bd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.glsl
index 4e60570..e4ed4c5 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_6de2bd() {
   vec4 arg_0 = vec4(1.0f);
   ivec4 res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_6de2bd() {
   vec4 arg_0 = vec4(1.0f);
   ivec4 res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.wgsl
index aa1938b..6d12675 100644
--- a/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/6de2bd.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn bitcast_6de2bd() -> vec4<i32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<i32> = bitcast<vec4<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_6de2bd();
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl
index 6fc908e..5feb81a 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, ia>) -> vec<2, u32>
 fn bitcast_70b121() -> vec2<u32>{
   const arg_0 = vec2(1);
   var res: vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_70b121();
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.dxc.hlsl
index 39403b8..58bcc83 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_70b121() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_70b121()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.fxc.hlsl
index 39403b8..58bcc83 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_70b121() {
   uint2 res = (1u).xx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_70b121()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.glsl
index 4ff5244..2ff4a4c 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_70b121() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_70b121() {
   uvec2 res = uvec2(1u);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.wgsl
index a4f6028..dab1e43 100644
--- a/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/70b121.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_70b121() -> vec2<u32> {
   const arg_0 = vec2(1);
   var res : vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_70b121();
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl
index 5faa36e..110eeaa 100644
--- a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec4<f16>>(vec2<i32>) -> vec4<f16>
 fn bitcast_71c92a() -> vec4<f16>{
   var arg_0 = vec2<i32>(1i);
   var res: vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_71c92a();
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.dxc.hlsl
index aac9252..dd825cb 100644
--- a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.dxc.hlsl
@@ -5,14 +5,14 @@
   return vector<float16_t, 4>(t_low.x, t_high.x, t_low.y, t_high.y);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_71c92a() {
   int2 arg_0 = (1).xx;
   vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_71c92a());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.glsl
index 9d1b40f..807ef09 100644
--- a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.glsl
@@ -10,16 +10,16 @@
   return f16vec4(v_xy.x, v_xy.y, v_zw.x, v_zw.y);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_71c92a() {
   ivec2 arg_0 = ivec2(1);
   f16vec4 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -43,16 +43,16 @@
   return f16vec4(v_xy.x, v_xy.y, v_zw.x, v_zw.y);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_71c92a() {
   ivec2 arg_0 = ivec2(1);
   f16vec4 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.wgsl
index 07240d4..59f7b51 100644
--- a/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/71c92a.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_71c92a() -> vec4<f16> {
   var arg_0 = vec2<i32>(1i);
   var res : vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_71c92a();
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl
index 4683d06..3542b30 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn bitcast<T: vec<4, f32>>(vec<4, f32>) -> vec<4, f32>
 fn bitcast_745b27() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = bitcast<vec4<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_745b27();
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.dxc.hlsl
index 461ac00..8be4c87 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_745b27() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_745b27()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.fxc.hlsl
index 461ac00..8be4c87 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_745b27() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_745b27()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.glsl
index 2322d6c..8fcf7da 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_745b27() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_745b27() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.wgsl
index 04e7082..4e9ca1e 100644
--- a/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/745b27.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn bitcast_745b27() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = bitcast<vec4<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_745b27();
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl
index b1a1f20..aa5938f 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(i32) -> i32
 fn bitcast_7e67cc() -> i32{
   var arg_0 = 1i;
   var res: i32 = bitcast<i32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7e67cc();
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.dxc.hlsl
index 02e99ab..bdd79e2 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_7e67cc() {
   int arg_0 = 1;
   int res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.fxc.hlsl
index 02e99ab..bdd79e2 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_7e67cc() {
   int arg_0 = 1;
   int res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_7e67cc()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.glsl
index 465bf6c..3786162 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_7e67cc() {
   int arg_0 = 1;
   int res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_7e67cc() {
   int arg_0 = 1;
   int res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.wgsl
index 9e31d92..f853316 100644
--- a/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/7e67cc.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_7e67cc() -> i32 {
   var arg_0 = 1i;
   var res : i32 = bitcast<i32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7e67cc();
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl
index 09cbe3a..1e30fe6 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, u32>) -> vec<4, u32>
 fn bitcast_7ffa9c() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7ffa9c();
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.dxc.hlsl
index 4df2a45..ce8b8d7 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_7ffa9c() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_7ffa9c()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.fxc.hlsl
index 4df2a45..ce8b8d7 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_7ffa9c() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_7ffa9c()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.glsl
index 0134c39..266bb70 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_7ffa9c() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_7ffa9c() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.wgsl
index 6af824e..695e2e2 100644
--- a/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/7ffa9c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_7ffa9c() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_7ffa9c();
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl
index a13d939..b03b802 100644
--- a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec2<u32>>(vec4<f16>) -> vec2<u32>
 fn bitcast_81c5f5() -> vec2<u32>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_81c5f5();
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.dxc.hlsl
index 9f51a90..bad5d12 100644
--- a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asuint(uint2((r.x & 0xffff) | ((r.y & 0xffff) << 16), (r.z & 0xffff) | ((r.w & 0xffff) << 16)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_81c5f5() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   uint2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_81c5f5()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.glsl
index 5fff024..555c47c 100644
--- a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return uvec2(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_81c5f5() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   uvec2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -39,16 +39,16 @@
   return uvec2(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_81c5f5() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   uvec2 res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.wgsl
index ca64366..a5d78e5 100644
--- a/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/81c5f5.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_81c5f5() -> vec2<u32> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_81c5f5();
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl
index 60678fe..982a59e 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, u32>) -> vec<3, u32>
 fn bitcast_8318a8() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8318a8();
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.dxc.hlsl
index ee01fe9..091071a 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_8318a8() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_8318a8()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.fxc.hlsl
index ee01fe9..091071a 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_8318a8() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_8318a8()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.glsl
index dfaeb75..78d8d66 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 bitcast_8318a8() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 bitcast_8318a8() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.wgsl
index eec8e25..19b9ca7 100644
--- a/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/8318a8.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_8318a8() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8318a8();
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl
index cc2a76d..5975734 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(ia) -> u32
 fn bitcast_879dc9() -> u32{
   const arg_0 = 1;
   var res: u32 = bitcast<u32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_879dc9();
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.dxc.hlsl
index b0eb7e0..24301f8 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_879dc9()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.fxc.hlsl
index b0eb7e0..24301f8 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_879dc9()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.glsl
index 01227a1..6356623 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.glsl
@@ -2,15 +2,15 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -26,15 +26,15 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_879dc9() {
   uint res = 1u;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.wgsl
index 1ec1cbc..787f10c 100644
--- a/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/879dc9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_879dc9() -> u32 {
   const arg_0 = 1;
   var res : u32 = bitcast<u32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_879dc9();
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl
index caef5a7..ac336bf 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec<2, i32>>(vec<2, f32>) -> vec<2, i32>
 fn bitcast_899e50() -> vec2<i32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_899e50();
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.dxc.hlsl
index e163ee0..9b12e35 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_899e50() {
   float2 arg_0 = (1.0f).xx;
   int2 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_899e50()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.fxc.hlsl
index e163ee0..9b12e35 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_899e50() {
   float2 arg_0 = (1.0f).xx;
   int2 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_899e50()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.glsl
index 535322c..736feb8 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_899e50() {
   vec2 arg_0 = vec2(1.0f);
   ivec2 res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_899e50() {
   vec2 arg_0 = vec2(1.0f);
   ivec2 res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.wgsl
index 2d76bdf..9e42c7e 100644
--- a/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/899e50.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_899e50() -> vec2<i32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_899e50();
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl
index 79e8758..76665aa 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, f32>) -> vec<4, u32>
 fn bitcast_8d184c() -> vec4<u32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8d184c();
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.dxc.hlsl
index b66e9c8..6eaab00 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_8d184c() {
   float4 arg_0 = (1.0f).xxxx;
   uint4 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_8d184c()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.fxc.hlsl
index b66e9c8..6eaab00 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_8d184c() {
   float4 arg_0 = (1.0f).xxxx;
   uint4 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_8d184c()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.glsl
index b7eb214..b9e5a02 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_8d184c() {
   vec4 arg_0 = vec4(1.0f);
   uvec4 res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_8d184c() {
   vec4 arg_0 = vec4(1.0f);
   uvec4 res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.wgsl
index 03d02fe..22c011e 100644
--- a/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/8d184c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_8d184c() -> vec4<u32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_8d184c();
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl
index ffdc829..c2773b8 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec<2, f32>>(vec<2, f32>) -> vec<2, f32>
 fn bitcast_9bcf71() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9bcf71();
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.dxc.hlsl
index f0425ab..c45cae8 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_9bcf71() {
   float2 arg_0 = (1.0f).xx;
   float2 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.fxc.hlsl
index f0425ab..c45cae8 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_9bcf71() {
   float2 arg_0 = (1.0f).xx;
   float2 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_9bcf71()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.glsl
index 599bf68..b3fdaa8 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_9bcf71() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_9bcf71() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.wgsl
index a4a3edc..056d746 100644
--- a/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/9bcf71.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_9bcf71() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9bcf71();
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl
index 42bddbd..856e2a4 100644
--- a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn bitcast<T: vec2<f16>>(f32) -> vec2<f16>
 fn bitcast_9ca42c() -> vec2<f16>{
   var arg_0 = 1.f;
   var res: vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9ca42c();
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.dxc.hlsl
index 6a44eba..4b392a3 100644
--- a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.dxc.hlsl
@@ -5,14 +5,14 @@
   return vector<float16_t, 2>(t_low.x, t_high.x);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> bitcast_9ca42c() {
   float arg_0 = 1.0f;
   vector<float16_t, 2> res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, bitcast_9ca42c());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.glsl
index 36e161c..e15dbf8 100644
--- a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return unpackFloat2x16(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_9ca42c() {
   float arg_0 = 1.0f;
   f16vec2 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -39,16 +39,16 @@
   return unpackFloat2x16(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 bitcast_9ca42c() {
   float arg_0 = 1.0f;
   f16vec2 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.wgsl
index 4554405..214dd50 100644
--- a/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/9ca42c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn bitcast_9ca42c() -> vec2<f16> {
   var arg_0 = 1.0f;
   var res : vec2<f16> = bitcast<vec2<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9ca42c();
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl
index 54cc5fd..57452f9 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn bitcast<T: vec<3, i32>>(vec<3, i32>) -> vec<3, i32>
 fn bitcast_9eee21() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = bitcast<vec3<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9eee21();
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.dxc.hlsl
index 5b6bf92..4b64ba5 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_9eee21() {
   int3 arg_0 = (1).xxx;
   int3 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.fxc.hlsl
index 5b6bf92..4b64ba5 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_9eee21() {
   int3 arg_0 = (1).xxx;
   int3 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_9eee21()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.glsl
index c7772b6..89af675 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 bitcast_9eee21() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 bitcast_9eee21() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.wgsl
index c384860..c7d8f11 100644
--- a/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/9eee21.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn bitcast_9eee21() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = bitcast<vec3<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_9eee21();
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl
index c8e02e8..af100de 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn bitcast<T: vec<4, f32>>(vec<4, u32>) -> vec<4, f32>
 fn bitcast_a4b290() -> vec4<f32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<f32> = bitcast<vec4<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a4b290();
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.dxc.hlsl
index bc62558..ba17a03 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_a4b290() {
   uint4 arg_0 = (1u).xxxx;
   float4 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.fxc.hlsl
index bc62558..ba17a03 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 bitcast_a4b290() {
   uint4 arg_0 = (1u).xxxx;
   float4 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a4b290()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.glsl
index fc4e410..34a54d7 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_a4b290() {
   uvec4 arg_0 = uvec4(1u);
   vec4 res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 bitcast_a4b290() {
   uvec4 arg_0 = uvec4(1u);
   vec4 res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.wgsl
index 7a1bd7f..92a64b0 100644
--- a/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a4b290.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn bitcast_a4b290() -> vec4<f32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<f32> = bitcast<vec4<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a4b290();
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl
index 4c3e077..fdb4310 100644
--- a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(vec2<f16>) -> u32
 fn bitcast_a58b50() -> u32{
   var arg_0 = vec2<f16>(1.h);
   var res: u32 = bitcast<u32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a58b50();
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.dxc.hlsl
index a90744e..7a3dd67 100644
--- a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asuint(uint((r.x & 0xffff) | ((r.y & 0xffff) << 16)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_a58b50() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   uint res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_a58b50()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.glsl
index 749f7d1..fde1a19 100644
--- a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return uint(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_a58b50() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   uint res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -39,16 +39,16 @@
   return uint(r);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_a58b50() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   uint res = tint_bitcast_from_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.wgsl
index de3120c..fed8717 100644
--- a/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a58b50.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_a58b50() -> u32 {
   var arg_0 = vec2<f16>(1.0h);
   var res : u32 = bitcast<u32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a58b50();
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl
index 7a207ef..9134a6a 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn bitcast<T: vec<4, i32>>(vec<4, u32>) -> vec<4, i32>
 fn bitcast_a5c539() -> vec4<i32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<i32> = bitcast<vec4<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a5c539();
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.dxc.hlsl
index 1afd4fa..3ba2053 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_a5c539() {
   uint4 arg_0 = (1u).xxxx;
   int4 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.fxc.hlsl
index 1afd4fa..3ba2053 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 bitcast_a5c539() {
   uint4 arg_0 = (1u).xxxx;
   int4 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a5c539()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.glsl
index e8460fc..b077de2 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_a5c539() {
   uvec4 arg_0 = uvec4(1u);
   ivec4 res = ivec4(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 bitcast_a5c539() {
   uvec4 arg_0 = uvec4(1u);
   ivec4 res = ivec4(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.wgsl
index edd360b..1b1ff08 100644
--- a/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a5c539.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn bitcast_a5c539() -> vec4<i32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<i32> = bitcast<vec4<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a5c539();
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl
index 6ed5979..8e73c00 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn bitcast<T: vec<4, u32>>(vec<4, i32>) -> vec<4, u32>
 fn bitcast_a8c93f() -> vec4<u32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8c93f();
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.dxc.hlsl
index 155f113..43c4b2e 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_a8c93f() {
   int4 arg_0 = (1).xxxx;
   uint4 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a8c93f()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.fxc.hlsl
index 155f113..43c4b2e 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 bitcast_a8c93f() {
   int4 arg_0 = (1).xxxx;
   uint4 res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(bitcast_a8c93f()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.glsl
index dcf269d..dbfc243 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_a8c93f() {
   ivec4 arg_0 = ivec4(1);
   uvec4 res = uvec4(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 bitcast_a8c93f() {
   ivec4 arg_0 = ivec4(1);
   uvec4 res = uvec4(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.wgsl
index 42a2a9f..7e4c0a7 100644
--- a/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a8c93f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn bitcast_a8c93f() -> vec4<u32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<u32> = bitcast<vec4<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8c93f();
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl
index 9f1c0ad..e539268 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn bitcast<T: vec<3, i32>>(vec<3, u32>) -> vec<3, i32>
 fn bitcast_a8ea1b() -> vec3<i32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<i32> = bitcast<vec3<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8ea1b();
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.dxc.hlsl
index 61d449a..ac3571e 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_a8ea1b() {
   uint3 arg_0 = (1u).xxx;
   int3 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.fxc.hlsl
index 61d449a..ac3571e 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_a8ea1b() {
   uint3 arg_0 = (1u).xxx;
   int3 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_a8ea1b()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.glsl
index b6530fd..e92ef52 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 bitcast_a8ea1b() {
   uvec3 arg_0 = uvec3(1u);
   ivec3 res = ivec3(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 bitcast_a8ea1b() {
   uvec3 arg_0 = uvec3(1u);
   ivec3 res = ivec3(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.wgsl
index 906562e..799670c 100644
--- a/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/a8ea1b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn bitcast_a8ea1b() -> vec3<i32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<i32> = bitcast<vec3<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_a8ea1b();
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl
index a3ac031..d61cd38 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(f32) -> f32
 fn bitcast_ac09d0() -> f32{
   var arg_0 = 1.f;
   var res: f32 = bitcast<f32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ac09d0();
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.dxc.hlsl
index 90c7ea5..bff614f 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ac09d0() {
   float arg_0 = 1.0f;
   float res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.fxc.hlsl
index 90c7ea5..bff614f 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ac09d0() {
   float arg_0 = 1.0f;
   float res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ac09d0()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.glsl
index 2241e69..3feb1d4 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ac09d0() {
   float arg_0 = 1.0f;
   float res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ac09d0() {
   float arg_0 = 1.0f;
   float res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.wgsl
index 96394fa..5d6aa6a 100644
--- a/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/ac09d0.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_ac09d0() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = bitcast<f32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ac09d0();
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl
index fe4c075..dfc75b9 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(u32) -> f32
 fn bitcast_ad4b05() -> f32{
   var arg_0 = 1u;
   var res: f32 = bitcast<f32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ad4b05();
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.dxc.hlsl
index c62c079..acd8109 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ad4b05() {
   uint arg_0 = 1u;
   float res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.fxc.hlsl
index c62c079..acd8109 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ad4b05() {
   uint arg_0 = 1u;
   float res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ad4b05()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.glsl
index b2ecb98..8895869 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ad4b05() {
   uint arg_0 = 1u;
   float res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ad4b05() {
   uint arg_0 = 1u;
   float res = uintBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.wgsl
index 9eb55c5..ce30818 100644
--- a/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/ad4b05.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_ad4b05() -> f32 {
   var arg_0 = 1u;
   var res : f32 = bitcast<f32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ad4b05();
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl
index f7508dd..c6fea66 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn bitcast<T: vec<3, i32>>(vec<3, f32>) -> vec<3, i32>
 fn bitcast_b28cbd() -> vec3<i32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<i32> = bitcast<vec3<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b28cbd();
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.dxc.hlsl
index 664c829..15f99f4 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_b28cbd() {
   float3 arg_0 = (1.0f).xxx;
   int3 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.fxc.hlsl
index 664c829..15f99f4 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 bitcast_b28cbd() {
   float3 arg_0 = (1.0f).xxx;
   int3 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_b28cbd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.glsl
index fb8034d..3c7cf4c 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 bitcast_b28cbd() {
   vec3 arg_0 = vec3(1.0f);
   ivec3 res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 bitcast_b28cbd() {
   vec3 arg_0 = vec3(1.0f);
   ivec3 res = floatBitsToInt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.wgsl
index 8c16eff..834c428 100644
--- a/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/b28cbd.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn bitcast_b28cbd() -> vec3<i32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<i32> = bitcast<vec3<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b28cbd();
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl
index 60da99f..6a524be 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn bitcast<T: vec<2, f32>>(vec<2, i32>) -> vec<2, f32>
 fn bitcast_b77573() -> vec2<f32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b77573();
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.dxc.hlsl
index 1441cb3..9a58583 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_b77573() {
   int2 arg_0 = (1).xx;
   float2 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_b77573()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.fxc.hlsl
index 1441cb3..9a58583 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 bitcast_b77573() {
   int2 arg_0 = (1).xx;
   float2 res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_b77573()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.glsl
index 2b34387..47017ab 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_b77573() {
   ivec2 arg_0 = ivec2(1);
   vec2 res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 bitcast_b77573() {
   ivec2 arg_0 = ivec2(1);
   vec2 res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.wgsl
index 1b540d4..5d334da 100644
--- a/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/b77573.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn bitcast_b77573() -> vec2<f32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<f32> = bitcast<vec2<f32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_b77573();
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl
index 0028a7c..b33e1ff 100644
--- a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn bitcast<T: vec4<f16>>(vec2<u32>) -> vec4<f16>
 fn bitcast_bc3994() -> vec4<f16>{
   var arg_0 = vec2<u32>(1u);
   var res: vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_bc3994();
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.dxc.hlsl
index 2584d24..05c256d 100644
--- a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.dxc.hlsl
@@ -5,14 +5,14 @@
   return vector<float16_t, 4>(t_low.x, t_high.x, t_low.y, t_high.y);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> bitcast_bc3994() {
   uint2 arg_0 = (1u).xx;
   vector<float16_t, 4> res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, bitcast_bc3994());
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.glsl
index 7ac481a..b6bc93b 100644
--- a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.glsl
@@ -10,16 +10,16 @@
   return f16vec4(v_xy.x, v_xy.y, v_zw.x, v_zw.y);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_bc3994() {
   uvec2 arg_0 = uvec2(1u);
   f16vec4 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -43,16 +43,16 @@
   return f16vec4(v_xy.x, v_xy.y, v_zw.x, v_zw.y);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 bitcast_bc3994() {
   uvec2 arg_0 = uvec2(1u);
   f16vec4 res = tint_bitcast_to_f16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.wgsl
index e1d8512..d7c2266 100644
--- a/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/bc3994.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn bitcast_bc3994() -> vec4<f16> {
   var arg_0 = vec2<u32>(1u);
   var res : vec4<f16> = bitcast<vec4<f16>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_bc3994();
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl
index 402d865..0e4b0be 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec<2, i32>>(vec<2, u32>) -> vec<2, i32>
 fn bitcast_c69aaf() -> vec2<i32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_c69aaf();
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.dxc.hlsl
index 07dff72..67b5cb1 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_c69aaf() {
   uint2 arg_0 = (1u).xx;
   int2 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.fxc.hlsl
index 07dff72..67b5cb1 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_c69aaf() {
   uint2 arg_0 = (1u).xx;
   int2 res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_c69aaf()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.glsl
index d6d7cc4..07e4d7a 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_c69aaf() {
   uvec2 arg_0 = uvec2(1u);
   ivec2 res = ivec2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_c69aaf() {
   uvec2 arg_0 = uvec2(1u);
   ivec2 res = ivec2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.wgsl
index 0795018..93fda8f 100644
--- a/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/c69aaf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_c69aaf() -> vec2<i32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_c69aaf();
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl
index 8722817..0fb9fe5 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn bitcast<T: f32>(i32) -> f32
 fn bitcast_ca5c3f() -> f32{
   var arg_0 = 1i;
   var res: f32 = bitcast<f32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ca5c3f();
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.dxc.hlsl
index 5f55ccf..1330678 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ca5c3f() {
   int arg_0 = 1;
   float res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.fxc.hlsl
index 5f55ccf..1330678 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float bitcast_ca5c3f() {
   int arg_0 = 1;
   float res = asfloat(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_ca5c3f()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.glsl
index 65d529d..bef822a 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ca5c3f() {
   int arg_0 = 1;
   float res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float bitcast_ca5c3f() {
   int arg_0 = 1;
   float res = intBitsToFloat(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.wgsl
index 1d900ae..626d548 100644
--- a/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/ca5c3f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn bitcast_ca5c3f() -> f32 {
   var arg_0 = 1i;
   var res : f32 = bitcast<f32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_ca5c3f();
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl
index aa0eaf6..3a07ffb 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn bitcast<T: vec<2, i32>>(vec<2, i32>) -> vec<2, i32>
 fn bitcast_cc7aa7() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_cc7aa7();
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.dxc.hlsl
index 14ba715..dd04dcd 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_cc7aa7() {
   int2 arg_0 = (1).xx;
   int2 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.fxc.hlsl
index 14ba715..dd04dcd 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 bitcast_cc7aa7() {
   int2 arg_0 = (1).xx;
   int2 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_cc7aa7()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.glsl
index 1d02e46..4d09708 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_cc7aa7() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 bitcast_cc7aa7() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.wgsl
index 3db35eb..1e13b61 100644
--- a/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/cc7aa7.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn bitcast_cc7aa7() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = bitcast<vec2<i32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_cc7aa7();
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl
index ec631ae..9e87e5d 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn bitcast<T: vec<2, u32>>(vec<2, u32>) -> vec<2, u32>
 fn bitcast_d29765() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_d29765();
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.dxc.hlsl
index 02702d2..c479d09 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_d29765() {
   uint2 arg_0 = (1u).xx;
   uint2 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_d29765()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.fxc.hlsl
index 02702d2..c479d09 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 bitcast_d29765() {
   uint2 arg_0 = (1u).xx;
   uint2 res = arg_0;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(bitcast_d29765()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.glsl
index 7b6ef57..8ba12f9 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_d29765() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 bitcast_d29765() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = arg_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.wgsl
index c1e151d..80a7b9d 100644
--- a/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/d29765.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn bitcast_d29765() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = bitcast<vec2<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_d29765();
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl
index 552f7f2..ab77fcc 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(i32) -> u32
 fn bitcast_dce842() -> u32{
   var arg_0 = 1i;
   var res: u32 = bitcast<u32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_dce842();
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.dxc.hlsl
index 78c4fb2..44a7152 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_dce842() {
   int arg_0 = 1;
   uint res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_dce842()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.fxc.hlsl
index 78c4fb2..44a7152 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_dce842() {
   int arg_0 = 1;
   uint res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_dce842()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.glsl
index e0fed62..90361f3 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_dce842() {
   int arg_0 = 1;
   uint res = uint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_dce842() {
   int arg_0 = 1;
   uint res = uint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.wgsl
index fbf3f06..87c0353 100644
--- a/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/dce842.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_dce842() -> u32 {
   var arg_0 = 1i;
   var res : u32 = bitcast<u32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_dce842();
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl
index f31481f..1116591 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn bitcast<T: i32>(u32) -> i32
 fn bitcast_e61c57() -> i32{
   var arg_0 = 1u;
   var res: i32 = bitcast<i32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e61c57();
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.dxc.hlsl
index 98add82..b8e91fc 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_e61c57() {
   uint arg_0 = 1u;
   int res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e61c57()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.fxc.hlsl
index 98add82..b8e91fc 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int bitcast_e61c57() {
   uint arg_0 = 1u;
   int res = asint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e61c57()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.glsl
index fd0aab9..3f38a48 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_e61c57() {
   uint arg_0 = 1u;
   int res = int(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int bitcast_e61c57() {
   uint arg_0 = 1u;
   int res = int(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.wgsl
index 05fbb80..080e337 100644
--- a/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/e61c57.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn bitcast_e61c57() -> i32 {
   var arg_0 = 1u;
   var res : i32 = bitcast<i32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e61c57();
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl
index ab4954f..51bce22 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn bitcast<T: u32>(f32) -> u32
 fn bitcast_e6c18f() -> u32{
   var arg_0 = 1.f;
   var res: u32 = bitcast<u32>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e6c18f();
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.dxc.hlsl
index 4e66a93..1b7b57b 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_e6c18f() {
   float arg_0 = 1.0f;
   uint res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e6c18f()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.fxc.hlsl
index 4e66a93..1b7b57b 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint bitcast_e6c18f() {
   float arg_0 = 1.0f;
   uint res = asuint(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(bitcast_e6c18f()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.glsl
index 95a5041..32d88af 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_e6c18f() {
   float arg_0 = 1.0f;
   uint res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint bitcast_e6c18f() {
   float arg_0 = 1.0f;
   uint res = floatBitsToUint(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.wgsl
index 8aef10e..53e9079 100644
--- a/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/e6c18f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn bitcast_e6c18f() -> u32 {
   var arg_0 = 1.0f;
   var res : u32 = bitcast<u32>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_e6c18f();
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl
index eff9199..2b7f2cb 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn bitcast<T: vec<3, u32>>(vec<3, ia>) -> vec<3, u32>
 fn bitcast_f756cd() -> vec3<u32>{
   const arg_0 = vec3(1);
   var res: vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_f756cd();
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.dxc.hlsl
index dc96a40..d855738 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_f756cd() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_f756cd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.fxc.hlsl
index dc96a40..d855738 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.fxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 bitcast_f756cd() {
   uint3 res = (1u).xxx;
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(bitcast_f756cd()));
   return;
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.glsl
index b618a40..256dd0d 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
-uvec3 bitcast_f756cd() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_f756cd() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
-uvec3 bitcast_f756cd() {
-  uvec3 res = uvec3(1u);
-  return res;
-}
-
 layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
   uvec3 inner;
   uint pad;
 } prevent_dce;
 
+uvec3 bitcast_f756cd() {
+  uvec3 res = uvec3(1u);
+  return res;
+}
+
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.wgsl
index 2d80a1a..052df09 100644
--- a/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/bitcast/f756cd.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn bitcast_f756cd() -> vec3<u32> {
   const arg_0 = vec3(1);
   var res : vec3<u32> = bitcast<vec3<u32>>(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = bitcast_f756cd();
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl
index ba4a419..69f7400 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn ceil(vec<3, f16>) -> vec<3, f16>
 fn ceil_09bf52() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.5h);
   var res: vec3<f16> = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_09bf52();
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.dxc.hlsl
index ed16104..9cef103 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> ceil_09bf52() {
   vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
   vector<float16_t, 3> res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, ceil_09bf52());
   return;
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.glsl
index cae95dc..6ce89f5 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ceil_09bf52() {
   f16vec3 arg_0 = f16vec3(1.5hf);
   f16vec3 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ceil_09bf52() {
   f16vec3 arg_0 = f16vec3(1.5hf);
   f16vec3 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.wgsl
index 22c538e..c68f8e2 100644
--- a/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/09bf52.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn ceil_09bf52() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.5h);
   var res : vec3<f16> = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_09bf52();
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl
index e120af6..453cd2a 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn ceil(vec<2, f16>) -> vec<2, f16>
 fn ceil_18c240() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.5h);
   var res: vec2<f16> = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_18c240();
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.dxc.hlsl
index 35b3446..135566d 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> ceil_18c240() {
   vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
   vector<float16_t, 2> res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, ceil_18c240());
   return;
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.glsl
index 736ee10..8018160 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ceil_18c240() {
   f16vec2 arg_0 = f16vec2(1.5hf);
   f16vec2 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ceil_18c240() {
   f16vec2 arg_0 = f16vec2(1.5hf);
   f16vec2 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.wgsl
index 56a9302..bb19977 100644
--- a/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/18c240.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn ceil_18c240() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.5h);
   var res : vec2<f16> = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_18c240();
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl
index cc17ebf..4af1f54 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn ceil(vec<3, f32>) -> vec<3, f32>
 fn ceil_34064b() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.5f);
   var res: vec3<f32> = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_34064b();
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.dxc.hlsl
index 8f724f0..f17d52b 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ceil_34064b() {
   float3 arg_0 = (1.5f).xxx;
   float3 res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ceil_34064b()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.fxc.hlsl
index 8f724f0..f17d52b 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ceil_34064b() {
   float3 arg_0 = (1.5f).xxx;
   float3 res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ceil_34064b()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.glsl
index 41f56d7..a21ace8 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 ceil_34064b() {
   vec3 arg_0 = vec3(1.5f);
   vec3 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 ceil_34064b() {
   vec3 arg_0 = vec3(1.5f);
   vec3 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.wgsl
index f666c46..57bb4ef 100644
--- a/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/34064b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn ceil_34064b() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.5f);
   var res : vec3<f32> = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_34064b();
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl
index 70e654e..eb030d3 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn ceil(vec<4, f16>) -> vec<4, f16>
 fn ceil_4bca2a() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.5h);
   var res: vec4<f16> = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_4bca2a();
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.dxc.hlsl
index e38a336..03298a8 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> ceil_4bca2a() {
   vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
   vector<float16_t, 4> res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, ceil_4bca2a());
   return;
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.glsl
index a6fe64d..2d4b043 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ceil_4bca2a() {
   f16vec4 arg_0 = f16vec4(1.5hf);
   f16vec4 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ceil_4bca2a() {
   f16vec4 arg_0 = f16vec4(1.5hf);
   f16vec4 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.wgsl
index e5635e5..68d5036 100644
--- a/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/4bca2a.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn ceil_4bca2a() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.5h);
   var res : vec4<f16> = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_4bca2a();
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl b/test/tint/builtins/gen/var/ceil/678655.wgsl
index 4a8c926..b3bbb86 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn ceil(f32) -> f32
 fn ceil_678655() -> f32{
   var arg_0 = 1.5f;
   var res: f32 = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_678655();
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.dxc.hlsl
index 7882115..c32ebba 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ceil_678655() {
   float arg_0 = 1.5f;
   float res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ceil_678655()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.fxc.hlsl
index 7882115..c32ebba 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ceil_678655() {
   float arg_0 = 1.5f;
   float res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ceil_678655()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.glsl
index 01bfbd2..f985039 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ceil_678655() {
   float arg_0 = 1.5f;
   float res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ceil_678655() {
   float arg_0 = 1.5f;
   float res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.wgsl
index 17069a1..1cde2cd 100644
--- a/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/678655.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn ceil_678655() -> f32 {
   var arg_0 = 1.5f;
   var res : f32 = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_678655();
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl
index 7730b9a..e3ecb76 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn ceil(vec<2, f32>) -> vec<2, f32>
 fn ceil_96f597() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.5f);
   var res: vec2<f32> = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_96f597();
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.dxc.hlsl
index 22f8fee..0bcba3a 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ceil_96f597() {
   float2 arg_0 = (1.5f).xx;
   float2 res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ceil_96f597()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.fxc.hlsl
index 22f8fee..0bcba3a 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ceil_96f597() {
   float2 arg_0 = (1.5f).xx;
   float2 res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ceil_96f597()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.glsl
index d5f568c..052404a 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ceil_96f597() {
   vec2 arg_0 = vec2(1.5f);
   vec2 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ceil_96f597() {
   vec2 arg_0 = vec2(1.5f);
   vec2 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.wgsl
index 400efe2..9e398d3 100644
--- a/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/96f597.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn ceil_96f597() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.5f);
   var res : vec2<f32> = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_96f597();
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl
index 8e67f60..cdfbd10 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn ceil(vec<4, f32>) -> vec<4, f32>
 fn ceil_b74c16() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.5f);
   var res: vec4<f32> = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_b74c16();
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.dxc.hlsl
index 9cf6ca5..aca2893 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ceil_b74c16() {
   float4 arg_0 = (1.5f).xxxx;
   float4 res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ceil_b74c16()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.fxc.hlsl
index 9cf6ca5..aca2893 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ceil_b74c16() {
   float4 arg_0 = (1.5f).xxxx;
   float4 res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ceil_b74c16()));
   return;
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.glsl
index ae14a2a..dbb9a9b 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ceil_b74c16() {
   vec4 arg_0 = vec4(1.5f);
   vec4 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ceil_b74c16() {
   vec4 arg_0 = vec4(1.5f);
   vec4 res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.wgsl
index bc8894d..cd7d803 100644
--- a/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/b74c16.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn ceil_b74c16() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.5f);
   var res : vec4<f32> = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_b74c16();
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl
index 3818e62..8fbb75e 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn ceil(f16) -> f16
 fn ceil_f3f889() -> f16{
   var arg_0 = 1.5h;
   var res: f16 = ceil(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_f3f889();
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.dxc.hlsl
index cd5eb36..1b28bf2 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t ceil_f3f889() {
   float16_t arg_0 = float16_t(1.5h);
   float16_t res = ceil(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, ceil_f3f889());
   return;
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.glsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.glsl
index 5ee1fbd..dcccd5b 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ceil_f3f889() {
   float16_t arg_0 = 1.5hf;
   float16_t res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ceil_f3f889() {
   float16_t arg_0 = 1.5hf;
   float16_t res = ceil(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.wgsl
index 75a4ce9..6acdfa5 100644
--- a/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ceil/f3f889.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn ceil_f3f889() -> f16 {
   var arg_0 = 1.5h;
   var res : f16 = ceil(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ceil_f3f889();
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl
index 85a3b96..d017013 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn clamp(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn clamp_0acf8f() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_0acf8f();
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.dxc.hlsl
index de201b2..d93ea0b 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 clamp_0acf8f() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.fxc.hlsl
index de201b2..d93ea0b 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 clamp_0acf8f() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_0acf8f()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.glsl
index b9e96b9..501673f 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 clamp_0acf8f() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 clamp_0acf8f() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.wgsl
index bd2737b..97897e1 100644
--- a/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/0acf8f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn clamp_0acf8f() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_0acf8f();
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl
index 22b417f..3273fa1 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn clamp(vec<4, i32>, vec<4, i32>, vec<4, i32>) -> vec<4, i32>
 fn clamp_1a32e3() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec4<i32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_1a32e3();
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.dxc.hlsl
index f5439cc..afea025 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 clamp_1a32e3() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.fxc.hlsl
index f5439cc..afea025 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 clamp_1a32e3() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_1a32e3()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.glsl
index bd67c41..8ad23fc 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 clamp_1a32e3() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 clamp_1a32e3() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.wgsl
index 091d826..cde30bf 100644
--- a/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/1a32e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn clamp_1a32e3() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_1a32e3();
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl
index 5ca0d29..8d585a0 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn clamp(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn clamp_235b29() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_235b29();
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.dxc.hlsl
index b9dae4a..0a020fc 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> clamp_235b29() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, clamp_235b29());
   return;
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.glsl
index 5a5c084..4f9d337 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 clamp_235b29() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 clamp_235b29() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.wgsl
index 4a84b9f..addc528 100644
--- a/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/235b29.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn clamp_235b29() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_235b29();
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl
index 1942bc4..c8e5b8e 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn clamp(f32, f32, f32) -> f32
 fn clamp_2bd567() -> f32{
   var arg_0 = 1.f;
@@ -43,8 +46,6 @@
   var res: f32 = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bd567();
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.dxc.hlsl
index dc145a1..0c0f95a 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float clamp_2bd567() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_2bd567()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.fxc.hlsl
index dc145a1..0c0f95a 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float clamp_2bd567() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_2bd567()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.glsl
index 834cd5f..ffa21b0 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float clamp_2bd567() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float clamp_2bd567() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.wgsl
index 77bd3b4..fc8fc7c 100644
--- a/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/2bd567.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn clamp_2bd567() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bd567();
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl
index 9e33225..f755e79 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn clamp(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn clamp_2bde41() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bde41();
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.dxc.hlsl
index e80c5b2..923ffdb 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 clamp_2bde41() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_2bde41()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.fxc.hlsl
index e80c5b2..923ffdb 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 clamp_2bde41() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_2bde41()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.glsl
index f6771e5..6195277 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 clamp_2bde41() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 clamp_2bde41() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.wgsl
index bc9fbab..bad4407 100644
--- a/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/2bde41.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn clamp_2bde41() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2bde41();
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl
index e86fe8f..b499ced 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn clamp(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn clamp_2c251b() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2c251b();
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.dxc.hlsl
index 2eec48b..e82bd7c 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> clamp_2c251b() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, clamp_2c251b());
   return;
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.glsl
index 2e48b83..60e0d70 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 clamp_2c251b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 clamp_2c251b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.wgsl
index 9f16eb3..44ec8ab 100644
--- a/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/2c251b.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn clamp_2c251b() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_2c251b();
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl
index 6bc2d6e..fe24f0b 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn clamp(vec<3, u32>, vec<3, u32>, vec<3, u32>) -> vec<3, u32>
 fn clamp_548fc7() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec3<u32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_548fc7();
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.dxc.hlsl
index 9a8f2d6..6a83fde 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 clamp_548fc7() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_548fc7()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.fxc.hlsl
index 9a8f2d6..6a83fde 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 clamp_548fc7() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_548fc7()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.glsl
index 976a231..f6371aa 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 clamp_548fc7() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 clamp_548fc7() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.wgsl
index fe0858c..802ff0e 100644
--- a/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/548fc7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn clamp_548fc7() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_548fc7();
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl
index 0d88277..97bbfeb 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn clamp(f16, f16, f16) -> f16
 fn clamp_553ffb() -> f16{
   var arg_0 = 1.h;
@@ -48,8 +51,6 @@
   var res: f16 = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_553ffb();
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.dxc.hlsl
index f3d925a..c47b7ac 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t clamp_553ffb() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, clamp_553ffb());
   return;
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.glsl
index 44e23d5..82fa301 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t clamp_553ffb() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t clamp_553ffb() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.wgsl
index 62a42e1..fbda351 100644
--- a/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/553ffb.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn clamp_553ffb() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_553ffb();
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl
index e01a38d..35ead01 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn clamp(vec<3, i32>, vec<3, i32>, vec<3, i32>) -> vec<3, i32>
 fn clamp_5f0819() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec3<i32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_5f0819();
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.dxc.hlsl
index bea4320..a8c040f 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 clamp_5f0819() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_5f0819()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.fxc.hlsl
index bea4320..a8c040f 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 clamp_5f0819() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_5f0819()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.glsl
index 0a48105..0d5f0f4 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 clamp_5f0819() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 clamp_5f0819() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.wgsl
index 285a9f2..26fed89 100644
--- a/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/5f0819.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn clamp_5f0819() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_5f0819();
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl
index a6f1c2b..b7569f6 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn clamp(vec<2, i32>, vec<2, i32>, vec<2, i32>) -> vec<2, i32>
 fn clamp_6c1749() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec2<i32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_6c1749();
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.dxc.hlsl
index 1b83ded..1976a11 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 clamp_6c1749() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_6c1749()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.fxc.hlsl
index 1b83ded..1976a11 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 clamp_6c1749() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_6c1749()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.glsl
index 01f4429..7a4dc45 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 clamp_6c1749() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 clamp_6c1749() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.wgsl
index e39d974..6706518 100644
--- a/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/6c1749.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn clamp_6c1749() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_6c1749();
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl
index 6217362..43a9170 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn clamp(vec<2, u32>, vec<2, u32>, vec<2, u32>) -> vec<2, u32>
 fn clamp_7706d7() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec2<u32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_7706d7();
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.dxc.hlsl
index c2bba03..f1484ec 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 clamp_7706d7() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_7706d7()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.fxc.hlsl
index c2bba03..f1484ec 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 clamp_7706d7() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(clamp_7706d7()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.glsl
index 90156b7..ea0a2df 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 clamp_7706d7() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 clamp_7706d7() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.wgsl
index 57ca026..0280b2a 100644
--- a/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/7706d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn clamp_7706d7() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_7706d7();
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl b/test/tint/builtins/gen/var/clamp/867397.wgsl
index 67b288a..1603222 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn clamp(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn clamp_867397() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_867397();
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.dxc.hlsl
index f2d3e65..08ec939 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 clamp_867397() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_867397()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.fxc.hlsl
index f2d3e65..08ec939 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 clamp_867397() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(clamp_867397()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.glsl
index a4d4659..7214cef 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 clamp_867397() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 clamp_867397() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.wgsl
index 7d677e8..6c2750e 100644
--- a/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/867397.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn clamp_867397() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_867397();
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl
index 7781e37..2d54cd6 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn clamp(u32, u32, u32) -> u32
 fn clamp_a2de25() -> u32{
   var arg_0 = 1u;
@@ -43,8 +46,6 @@
   var res: u32 = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_a2de25();
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.dxc.hlsl
index 1359f5e..d88b2cd 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint clamp_a2de25() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_a2de25()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.fxc.hlsl
index 1359f5e..d88b2cd 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint clamp_a2de25() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_a2de25()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.glsl
index 89c0424..998eec4 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint clamp_a2de25() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint clamp_a2de25() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.wgsl
index a90eb90..853ba8e 100644
--- a/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/a2de25.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn clamp_a2de25() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_a2de25();
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl
index a7e5df1..ff73af1 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn clamp(i32, i32, i32) -> i32
 fn clamp_b07c65() -> i32{
   var arg_0 = 1i;
@@ -43,8 +46,6 @@
   var res: i32 = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b07c65();
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.dxc.hlsl
index d02e700..84412d5 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int clamp_b07c65() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_b07c65()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.fxc.hlsl
index d02e700..84412d5 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int clamp_b07c65() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(clamp_b07c65()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.glsl
index f09f304..03dec76 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int clamp_b07c65() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int clamp_b07c65() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.wgsl
index e11dde1..16c550e 100644
--- a/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/b07c65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn clamp_b07c65() -> i32 {
   var arg_0 = 1i;
   var arg_1 = 1i;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b07c65();
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl
index 6ec4531..920fc7f 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn clamp(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn clamp_b195eb() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b195eb();
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.dxc.hlsl
index f073b0d..50ec51d 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> clamp_b195eb() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, clamp_b195eb());
   return;
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.glsl
index 3f41428..3287bfe 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 clamp_b195eb() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 clamp_b195eb() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.wgsl
index 0f4fe22..b2af61d 100644
--- a/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/b195eb.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn clamp_b195eb() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_b195eb();
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl
index c90cb7d..6e60088 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn clamp(vec<4, u32>, vec<4, u32>, vec<4, u32>) -> vec<4, u32>
 fn clamp_bd43ce() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec4<u32> = clamp(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_bd43ce();
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.dxc.hlsl
index 42b816a..e6ebf31 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.dxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 clamp_bd43ce() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_bd43ce()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.fxc.hlsl
index 42b816a..e6ebf31 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.fxc.hlsl
@@ -2,6 +2,8 @@
   return min(max(e, low), high);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 clamp_bd43ce() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(clamp_bd43ce()));
   return;
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.glsl
index 04c5096..0152dd0 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 clamp_bd43ce() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 clamp_bd43ce() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.wgsl
index 8d2eb0b..f13e65f 100644
--- a/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/clamp/bd43ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn clamp_bd43ce() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = clamp_bd43ce();
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl b/test/tint/builtins/gen/var/cos/0835a8.wgsl
index efe8404..915dc09 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn cos(vec<3, f16>) -> vec<3, f16>
 fn cos_0835a8() -> vec3<f16>{
   var arg_0 = vec3<f16>(0.h);
   var res: vec3<f16> = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0835a8();
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.dxc.hlsl
index 685d75f..8df2d7e 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> cos_0835a8() {
   vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
   vector<float16_t, 3> res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, cos_0835a8());
   return;
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.glsl
index 9fe8e74..143abec 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cos_0835a8() {
   f16vec3 arg_0 = f16vec3(0.0hf);
   f16vec3 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cos_0835a8() {
   f16vec3 arg_0 = f16vec3(0.0hf);
   f16vec3 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.wgsl
index 2a67506..b994647 100644
--- a/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/0835a8.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn cos_0835a8() -> vec3<f16> {
   var arg_0 = vec3<f16>(0.0h);
   var res : vec3<f16> = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0835a8();
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl
index 02c6105..c37d950 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn cos(vec<4, f16>) -> vec<4, f16>
 fn cos_0a89f7() -> vec4<f16>{
   var arg_0 = vec4<f16>(0.h);
   var res: vec4<f16> = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0a89f7();
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.dxc.hlsl
index 6d2353f..6ea3e4f 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> cos_0a89f7() {
   vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
   vector<float16_t, 4> res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, cos_0a89f7());
   return;
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.glsl
index b0f28cf..71e32fa 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cos_0a89f7() {
   f16vec4 arg_0 = f16vec4(0.0hf);
   f16vec4 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cos_0a89f7() {
   f16vec4 arg_0 = f16vec4(0.0hf);
   f16vec4 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.wgsl
index d4c4366..ee206c6 100644
--- a/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/0a89f7.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn cos_0a89f7() -> vec4<f16> {
   var arg_0 = vec4<f16>(0.0h);
   var res : vec4<f16> = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_0a89f7();
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl
index fae3ad6..f242022 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn cos(vec<3, f32>) -> vec<3, f32>
 fn cos_16dc15() -> vec3<f32>{
   var arg_0 = vec3<f32>(0.f);
   var res: vec3<f32> = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_16dc15();
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.dxc.hlsl
index 333fbbb..3f58627 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cos_16dc15() {
   float3 arg_0 = (0.0f).xxx;
   float3 res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cos_16dc15()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.fxc.hlsl
index 333fbbb..3f58627 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cos_16dc15() {
   float3 arg_0 = (0.0f).xxx;
   float3 res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cos_16dc15()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.glsl
index 959bfa3..a999239 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 cos_16dc15() {
   vec3 arg_0 = vec3(0.0f);
   vec3 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 cos_16dc15() {
   vec3 arg_0 = vec3(0.0f);
   vec3 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.wgsl
index 05e67db..3e4feb8 100644
--- a/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/16dc15.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn cos_16dc15() -> vec3<f32> {
   var arg_0 = vec3<f32>(0.0f);
   var res : vec3<f32> = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_16dc15();
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl
index cbab46e..e69546f 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn cos(vec<4, f32>) -> vec<4, f32>
 fn cos_29d66d() -> vec4<f32>{
   var arg_0 = vec4<f32>(0.f);
   var res: vec4<f32> = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_29d66d();
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.dxc.hlsl
index e9d3ee2..977f314 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cos_29d66d() {
   float4 arg_0 = (0.0f).xxxx;
   float4 res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cos_29d66d()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.fxc.hlsl
index e9d3ee2..977f314 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cos_29d66d() {
   float4 arg_0 = (0.0f).xxxx;
   float4 res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cos_29d66d()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.glsl
index 934fa4a..1850b03 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cos_29d66d() {
   vec4 arg_0 = vec4(0.0f);
   vec4 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cos_29d66d() {
   vec4 arg_0 = vec4(0.0f);
   vec4 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.wgsl
index 8664d1b..f6aeb59 100644
--- a/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/29d66d.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn cos_29d66d() -> vec4<f32> {
   var arg_0 = vec4<f32>(0.0f);
   var res : vec4<f32> = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_29d66d();
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl
index c665691..69303b1 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn cos(vec<2, f16>) -> vec<2, f16>
 fn cos_5bc2c6() -> vec2<f16>{
   var arg_0 = vec2<f16>(0.h);
   var res: vec2<f16> = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_5bc2c6();
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.dxc.hlsl
index 988a247..65df243 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> cos_5bc2c6() {
   vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
   vector<float16_t, 2> res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, cos_5bc2c6());
   return;
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.glsl
index 5514acb..134b046 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cos_5bc2c6() {
   f16vec2 arg_0 = f16vec2(0.0hf);
   f16vec2 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cos_5bc2c6() {
   f16vec2 arg_0 = f16vec2(0.0hf);
   f16vec2 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.wgsl
index a6f66bd..e7262a7 100644
--- a/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/5bc2c6.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn cos_5bc2c6() -> vec2<f16> {
   var arg_0 = vec2<f16>(0.0h);
   var res : vec2<f16> = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_5bc2c6();
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl
index 8de9383..a8bbcf9 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn cos(vec<2, f32>) -> vec<2, f32>
 fn cos_c3b486() -> vec2<f32>{
   var arg_0 = vec2<f32>(0.f);
   var res: vec2<f32> = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c3b486();
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.dxc.hlsl
index 92cb8a5..a3e1bba 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cos_c3b486() {
   float2 arg_0 = (0.0f).xx;
   float2 res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cos_c3b486()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.fxc.hlsl
index 92cb8a5..a3e1bba 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cos_c3b486() {
   float2 arg_0 = (0.0f).xx;
   float2 res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cos_c3b486()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.glsl
index 6a4c811..24c6968 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cos_c3b486() {
   vec2 arg_0 = vec2(0.0f);
   vec2 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cos_c3b486() {
   vec2 arg_0 = vec2(0.0f);
   vec2 res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.wgsl
index 3c6e14d..d75d0d9 100644
--- a/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/c3b486.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn cos_c3b486() -> vec2<f32> {
   var arg_0 = vec2<f32>(0.0f);
   var res : vec2<f32> = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c3b486();
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl
index 0ea6eba..ed9d351 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn cos(f32) -> f32
 fn cos_c5c28e() -> f32{
   var arg_0 = 0.f;
   var res: f32 = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c5c28e();
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.dxc.hlsl
index c769b83..e84db3b 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cos_c5c28e() {
   float arg_0 = 0.0f;
   float res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cos_c5c28e()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.fxc.hlsl
index c769b83..e84db3b 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cos_c5c28e() {
   float arg_0 = 0.0f;
   float res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cos_c5c28e()));
   return;
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.glsl
index 26b54d3..6938264 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cos_c5c28e() {
   float arg_0 = 0.0f;
   float res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cos_c5c28e() {
   float arg_0 = 0.0f;
   float res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.wgsl
index 436a11c..7ad8380 100644
--- a/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/c5c28e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn cos_c5c28e() -> f32 {
   var arg_0 = 0.0f;
   var res : f32 = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_c5c28e();
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl b/test/tint/builtins/gen/var/cos/fc047d.wgsl
index 08bd274..d28330d 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn cos(f16) -> f16
 fn cos_fc047d() -> f16{
   var arg_0 = 0.h;
   var res: f16 = cos(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_fc047d();
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.dxc.hlsl
index 31cc26c..c055ed5 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t cos_fc047d() {
   float16_t arg_0 = float16_t(0.0h);
   float16_t res = cos(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, cos_fc047d());
   return;
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.glsl b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.glsl
index 892926f..1a311e0 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cos_fc047d() {
   float16_t arg_0 = 0.0hf;
   float16_t res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cos_fc047d() {
   float16_t arg_0 = 0.0hf;
   float16_t res = cos(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.wgsl
index 375e008..3466eeb 100644
--- a/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cos/fc047d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn cos_fc047d() -> f16 {
   var arg_0 = 0.0h;
   var res : f16 = cos(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cos_fc047d();
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl
index 6fbe2e8..74805cb 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn cosh(f16) -> f16
 fn cosh_2ed778() -> f16{
   var arg_0 = 0.h;
   var res: f16 = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_2ed778();
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.dxc.hlsl
index fb8cfff..eaa2339 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t cosh_2ed778() {
   float16_t arg_0 = float16_t(0.0h);
   float16_t res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, cosh_2ed778());
   return;
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.glsl
index 9d39a20..5b41337 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cosh_2ed778() {
   float16_t arg_0 = 0.0hf;
   float16_t res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t cosh_2ed778() {
   float16_t arg_0 = 0.0hf;
   float16_t res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.wgsl
index 5829d64..2c8ad4e 100644
--- a/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/2ed778.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn cosh_2ed778() -> f16 {
   var arg_0 = 0.0h;
   var res : f16 = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_2ed778();
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl b/test/tint/builtins/gen/var/cosh/377652.wgsl
index 3d10a1a..0ffbcdd 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn cosh(vec<3, f32>) -> vec<3, f32>
 fn cosh_377652() -> vec3<f32>{
   var arg_0 = vec3<f32>(0.f);
   var res: vec3<f32> = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_377652();
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.dxc.hlsl
index 2bfc9b6..3b5ed45 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cosh_377652() {
   float3 arg_0 = (0.0f).xxx;
   float3 res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cosh_377652()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.fxc.hlsl
index 2bfc9b6..3b5ed45 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cosh_377652() {
   float3 arg_0 = (0.0f).xxx;
   float3 res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cosh_377652()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.glsl
index 49d0fe4..c3a6fa7 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 cosh_377652() {
   vec3 arg_0 = vec3(0.0f);
   vec3 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 cosh_377652() {
   vec3 arg_0 = vec3(0.0f);
   vec3 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.wgsl
index 93d856b..9baad1a 100644
--- a/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/377652.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn cosh_377652() -> vec3<f32> {
   var arg_0 = vec3<f32>(0.0f);
   var res : vec3<f32> = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_377652();
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl
index 1264441..d409967 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn cosh(vec<4, f16>) -> vec<4, f16>
 fn cosh_3b7bbf() -> vec4<f16>{
   var arg_0 = vec4<f16>(0.h);
   var res: vec4<f16> = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_3b7bbf();
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.dxc.hlsl
index 38a9076..eafd01b 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> cosh_3b7bbf() {
   vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
   vector<float16_t, 4> res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, cosh_3b7bbf());
   return;
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.glsl
index 56ad1bc..6383b02 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cosh_3b7bbf() {
   f16vec4 arg_0 = f16vec4(0.0hf);
   f16vec4 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 cosh_3b7bbf() {
   f16vec4 arg_0 = f16vec4(0.0hf);
   f16vec4 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.wgsl
index 060ca4d..89d03ce 100644
--- a/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/3b7bbf.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn cosh_3b7bbf() -> vec4<f16> {
   var arg_0 = vec4<f16>(0.0h);
   var res : vec4<f16> = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_3b7bbf();
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl b/test/tint/builtins/gen/var/cosh/43b672.wgsl
index 3e4c3ed..8e34b58 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn cosh(vec<2, f16>) -> vec<2, f16>
 fn cosh_43b672() -> vec2<f16>{
   var arg_0 = vec2<f16>(0.h);
   var res: vec2<f16> = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_43b672();
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.dxc.hlsl
index 1866be4..bbd6019 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> cosh_43b672() {
   vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
   vector<float16_t, 2> res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, cosh_43b672());
   return;
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.glsl
index e5488bb..0c20360 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cosh_43b672() {
   f16vec2 arg_0 = f16vec2(0.0hf);
   f16vec2 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 cosh_43b672() {
   f16vec2 arg_0 = f16vec2(0.0hf);
   f16vec2 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.wgsl
index 866075e..86ee60d 100644
--- a/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/43b672.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn cosh_43b672() -> vec2<f16> {
   var arg_0 = vec2<f16>(0.0h);
   var res : vec2<f16> = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_43b672();
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl
index 657101b..f7c53c0 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn cosh(vec<3, f16>) -> vec<3, f16>
 fn cosh_b1b8a0() -> vec3<f16>{
   var arg_0 = vec3<f16>(0.h);
   var res: vec3<f16> = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_b1b8a0();
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.dxc.hlsl
index 8610c88..c2f08c6 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> cosh_b1b8a0() {
   vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
   vector<float16_t, 3> res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, cosh_b1b8a0());
   return;
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.glsl
index 9c82b02..3ae5306f 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cosh_b1b8a0() {
   f16vec3 arg_0 = f16vec3(0.0hf);
   f16vec3 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cosh_b1b8a0() {
   f16vec3 arg_0 = f16vec3(0.0hf);
   f16vec3 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.wgsl
index a3e5b5c..c7f0400 100644
--- a/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/b1b8a0.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn cosh_b1b8a0() -> vec3<f16> {
   var arg_0 = vec3<f16>(0.0h);
   var res : vec3<f16> = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_b1b8a0();
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl
index 95abcdf..1a3bd11 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn cosh(vec<2, f32>) -> vec<2, f32>
 fn cosh_c13756() -> vec2<f32>{
   var arg_0 = vec2<f32>(0.f);
   var res: vec2<f32> = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_c13756();
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.dxc.hlsl
index e99ace2..f5c9219 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cosh_c13756() {
   float2 arg_0 = (0.0f).xx;
   float2 res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cosh_c13756()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.fxc.hlsl
index e99ace2..f5c9219 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 cosh_c13756() {
   float2 arg_0 = (0.0f).xx;
   float2 res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(cosh_c13756()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.glsl
index 02854ca..d85d856 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cosh_c13756() {
   vec2 arg_0 = vec2(0.0f);
   vec2 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 cosh_c13756() {
   vec2 arg_0 = vec2(0.0f);
   vec2 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.wgsl
index ad5a6e3..a8a1033 100644
--- a/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/c13756.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn cosh_c13756() -> vec2<f32> {
   var arg_0 = vec2<f32>(0.0f);
   var res : vec2<f32> = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_c13756();
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl
index 8a5f996..db11b4e 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn cosh(f32) -> f32
 fn cosh_da92dd() -> f32{
   var arg_0 = 0.f;
   var res: f32 = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_da92dd();
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.dxc.hlsl
index 1370bf1..d187ae9 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cosh_da92dd() {
   float arg_0 = 0.0f;
   float res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cosh_da92dd()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.fxc.hlsl
index 1370bf1..d187ae9 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float cosh_da92dd() {
   float arg_0 = 0.0f;
   float res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(cosh_da92dd()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.glsl
index 7635e90..d6f9da9 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cosh_da92dd() {
   float arg_0 = 0.0f;
   float res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float cosh_da92dd() {
   float arg_0 = 0.0f;
   float res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.wgsl
index 88b5174..4dccf3c 100644
--- a/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/da92dd.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn cosh_da92dd() -> f32 {
   var arg_0 = 0.0f;
   var res : f32 = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_da92dd();
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl
index 596b3c3..cc87e56 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn cosh(vec<4, f32>) -> vec<4, f32>
 fn cosh_e0c1de() -> vec4<f32>{
   var arg_0 = vec4<f32>(0.f);
   var res: vec4<f32> = cosh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_e0c1de();
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.dxc.hlsl
index ad74c1b..be55837 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cosh_e0c1de() {
   float4 arg_0 = (0.0f).xxxx;
   float4 res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.fxc.hlsl
index ad74c1b..be55837 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 cosh_e0c1de() {
   float4 arg_0 = (0.0f).xxxx;
   float4 res = cosh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(cosh_e0c1de()));
   return;
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.glsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.glsl
index fb18fdc..b0050b2 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cosh_e0c1de() {
   vec4 arg_0 = vec4(0.0f);
   vec4 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 cosh_e0c1de() {
   vec4 arg_0 = vec4(0.0f);
   vec4 res = cosh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.wgsl
index d6c7197..a676cc5 100644
--- a/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cosh/e0c1de.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn cosh_e0c1de() -> vec4<f32> {
   var arg_0 = vec4<f32>(0.0f);
   var res : vec4<f32> = cosh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cosh_e0c1de();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl
index 94c7c5c..2356095 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn countLeadingZeros(u32) -> u32
 fn countLeadingZeros_208d46() -> u32{
   var arg_0 = 1u;
   var res: u32 = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_208d46();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl
index bdbdc86..fda6f24 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countLeadingZeros_208d46() {
   uint arg_0 = 1u;
   uint res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_208d46()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl
index bdbdc86..fda6f24 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countLeadingZeros_208d46() {
   uint arg_0 = 1u;
   uint res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_208d46()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.glsl
index e5af6e3..2adc9e9 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countLeadingZeros_208d46() {
   uint arg_0 = 1u;
   uint res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -57,16 +57,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countLeadingZeros_208d46() {
   uint arg_0 = 1u;
   uint res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.wgsl
index 035d21d..7213718 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/208d46.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn countLeadingZeros_208d46() -> u32 {
   var arg_0 = 1u;
   var res : u32 = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_208d46();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl
index 0293143..3498588 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn countLeadingZeros(i32) -> i32
 fn countLeadingZeros_6d4656() -> i32{
   var arg_0 = 1i;
   var res: i32 = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_6d4656();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl
index b71a922..eec881a 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countLeadingZeros_6d4656() {
   int arg_0 = 1;
   int res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl
index b71a922..eec881a 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countLeadingZeros_6d4656() {
   int arg_0 = 1;
   int res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countLeadingZeros_6d4656()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.glsl
index 88516f0..dc809ab 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countLeadingZeros_6d4656() {
   int arg_0 = 1;
   int res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -57,16 +57,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countLeadingZeros_6d4656() {
   int arg_0 = 1;
   int res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.wgsl
index 97cd034..936cf95 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/6d4656.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn countLeadingZeros_6d4656() -> i32 {
   var arg_0 = 1i;
   var res : i32 = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_6d4656();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl
index 731c01b..e39b69b 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn countLeadingZeros(vec<2, u32>) -> vec<2, u32>
 fn countLeadingZeros_70783f() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_70783f();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl
index e623fec..bedc4d7 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countLeadingZeros_70783f() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_70783f()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl
index e623fec..bedc4d7 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countLeadingZeros_70783f() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_70783f()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.glsl
index 37bccd6..929eb68 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countLeadingZeros_70783f() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countLeadingZeros_70783f() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.wgsl
index bd77fea..4a5e010 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/70783f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn countLeadingZeros_70783f() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_70783f();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl
index e27a70e..9101025 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn countLeadingZeros(vec<3, i32>) -> vec<3, i32>
 fn countLeadingZeros_7c38a6() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_7c38a6();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl
index 0b51590..7d798d4 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countLeadingZeros_7c38a6() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl
index 0b51590..7d798d4 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countLeadingZeros_7c38a6() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_7c38a6()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.glsl
index 8368ada..0a6a7b7 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 countLeadingZeros_7c38a6() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -68,17 +68,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 countLeadingZeros_7c38a6() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.wgsl
index caf7261..9e933d1 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/7c38a6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn countLeadingZeros_7c38a6() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_7c38a6();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl
index 6da5064..21f9202 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn countLeadingZeros(vec<2, i32>) -> vec<2, i32>
 fn countLeadingZeros_858d40() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_858d40();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl
index 22cef47..5a777f6 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countLeadingZeros_858d40() {
   int2 arg_0 = (1).xx;
   int2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl
index 22cef47..5a777f6 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countLeadingZeros_858d40() {
   int2 arg_0 = (1).xx;
   int2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countLeadingZeros_858d40()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.glsl
index 2936890..74afb31 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countLeadingZeros_858d40() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countLeadingZeros_858d40() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.wgsl
index 06fedf7..af56325 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/858d40.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn countLeadingZeros_858d40() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_858d40();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl
index 7e93767..d9474eb 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn countLeadingZeros(vec<3, u32>) -> vec<3, u32>
 fn countLeadingZeros_ab6345() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_ab6345();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl
index e8c72a1..e15e618 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countLeadingZeros_ab6345() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_ab6345()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl
index e8c72a1..e15e618 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countLeadingZeros_ab6345() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countLeadingZeros_ab6345()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.glsl
index 8b0a39a..933542d 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 countLeadingZeros_ab6345() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -68,17 +68,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 countLeadingZeros_ab6345() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.wgsl
index 48460da..431544e 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/ab6345.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn countLeadingZeros_ab6345() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_ab6345();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl
index 6c78c20..312b54d 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn countLeadingZeros(vec<4, i32>) -> vec<4, i32>
 fn countLeadingZeros_eab32b() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_eab32b();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl
index 47dd5ef..b2bc09c 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countLeadingZeros_eab32b() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl
index 47dd5ef..b2bc09c 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countLeadingZeros_eab32b() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_eab32b()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.glsl
index 6a6a255..da9bf40 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countLeadingZeros_eab32b() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countLeadingZeros_eab32b() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.wgsl
index 14bf77a..27aba81 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/eab32b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn countLeadingZeros_eab32b() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_eab32b();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl
index a83dc99..38d7c2a 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn countLeadingZeros(vec<4, u32>) -> vec<4, u32>
 fn countLeadingZeros_f70103() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = countLeadingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_f70103();
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl
index f01e96a..9d3ac9e 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countLeadingZeros_f70103() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_f70103()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl
index f01e96a..9d3ac9e 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countLeadingZeros_f70103() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countLeadingZeros_f70103()));
   return;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.glsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.glsl
index 14a291a..d676a5d 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countLeadingZeros_f70103() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countLeadingZeros_f70103() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_count_leading_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.wgsl
index daf3c58..d8d16ec 100644
--- a/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countLeadingZeros/f70103.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn countLeadingZeros_f70103() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = countLeadingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countLeadingZeros_f70103();
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl
index 607c9bc..3cd10c7 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn countOneBits(vec<4, u32>) -> vec<4, u32>
 fn countOneBits_0d0e46() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0d0e46();
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.dxc.hlsl
index 3aa75c0..6c55790 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countOneBits_0d0e46() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0d0e46()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.fxc.hlsl
index 3aa75c0..6c55790 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countOneBits_0d0e46() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0d0e46()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.glsl
index fef666b..126af7e 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countOneBits_0d0e46() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = uvec4(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countOneBits_0d0e46() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = uvec4(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.wgsl
index 4862963..b4ffa11 100644
--- a/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/0d0e46.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn countOneBits_0d0e46() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0d0e46();
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl
index 2f1c05a..4ac1299 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn countOneBits(vec<4, i32>) -> vec<4, i32>
 fn countOneBits_0f7980() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0f7980();
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.dxc.hlsl
index b4cc460..6ff320f 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countOneBits_0f7980() {
   int4 arg_0 = (1).xxxx;
   int4 res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.fxc.hlsl
index b4cc460..6ff320f 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countOneBits_0f7980() {
   int4 arg_0 = (1).xxxx;
   int4 res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countOneBits_0f7980()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.glsl
index 641220c..25ee648 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countOneBits_0f7980() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = ivec4(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countOneBits_0f7980() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = ivec4(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.wgsl
index 99f0c17..0a682ad 100644
--- a/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/0f7980.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn countOneBits_0f7980() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_0f7980();
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl
index 3d814dc..b178b6c 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn countOneBits(vec<3, i32>) -> vec<3, i32>
 fn countOneBits_65d2ae() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_65d2ae();
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.dxc.hlsl
index c953d9c..17aa8a2 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countOneBits_65d2ae() {
   int3 arg_0 = (1).xxx;
   int3 res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.fxc.hlsl
index c953d9c..17aa8a2 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countOneBits_65d2ae() {
   int3 arg_0 = (1).xxx;
   int3 res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_65d2ae()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.glsl
index 3d4a62f..50d6c04 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 countOneBits_65d2ae() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = ivec3(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 countOneBits_65d2ae() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = ivec3(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.wgsl
index bdc032e..eb83f7b 100644
--- a/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/65d2ae.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn countOneBits_65d2ae() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_65d2ae();
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl
index 58a5b54..ec0310b 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn countOneBits(vec<3, u32>) -> vec<3, u32>
 fn countOneBits_690cfc() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_690cfc();
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.dxc.hlsl
index 5cdbcc8..5b88cce 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countOneBits_690cfc() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_690cfc()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.fxc.hlsl
index 5cdbcc8..5b88cce 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countOneBits_690cfc() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countOneBits_690cfc()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.glsl
index 4000e00..5a51dd7 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 countOneBits_690cfc() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = uvec3(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 countOneBits_690cfc() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = uvec3(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.wgsl
index b3e9884..8c375c8 100644
--- a/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/690cfc.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn countOneBits_690cfc() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_690cfc();
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl
index a5c2cff..fd50ebd 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn countOneBits(vec<2, u32>) -> vec<2, u32>
 fn countOneBits_94fd81() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_94fd81();
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.dxc.hlsl
index 706f5b9..a670549 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countOneBits_94fd81() {
   uint2 arg_0 = (1u).xx;
   uint2 res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_94fd81()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.fxc.hlsl
index 706f5b9..a670549 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countOneBits_94fd81() {
   uint2 arg_0 = (1u).xx;
   uint2 res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_94fd81()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.glsl
index a1cd4b3..76cdc4c 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countOneBits_94fd81() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = uvec2(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countOneBits_94fd81() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = uvec2(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.wgsl
index d100a87..5d7bb82 100644
--- a/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/94fd81.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn countOneBits_94fd81() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_94fd81();
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl
index 9ce6638..76f185f 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn countOneBits(u32) -> u32
 fn countOneBits_ae44f9() -> u32{
   var arg_0 = 1u;
   var res: u32 = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_ae44f9();
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.dxc.hlsl
index 6382353..49ae324 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countOneBits_ae44f9() {
   uint arg_0 = 1u;
   uint res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_ae44f9()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.fxc.hlsl
index 6382353..49ae324 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countOneBits_ae44f9() {
   uint arg_0 = 1u;
   uint res = countbits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_ae44f9()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.glsl
index b9e7bff..035262a 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countOneBits_ae44f9() {
   uint arg_0 = 1u;
   uint res = uint(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countOneBits_ae44f9() {
   uint arg_0 = 1u;
   uint res = uint(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.wgsl
index f552b96..217c248 100644
--- a/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/ae44f9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn countOneBits_ae44f9() -> u32 {
   var arg_0 = 1u;
   var res : u32 = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_ae44f9();
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl
index 2bf8f71..63e9f16 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn countOneBits(vec<2, i32>) -> vec<2, i32>
 fn countOneBits_af90e2() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_af90e2();
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.dxc.hlsl
index 23cbba0..d52fcc6 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countOneBits_af90e2() {
   int2 arg_0 = (1).xx;
   int2 res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.fxc.hlsl
index 23cbba0..d52fcc6 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countOneBits_af90e2() {
   int2 arg_0 = (1).xx;
   int2 res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countOneBits_af90e2()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.glsl
index 447aec4..106fdd5 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countOneBits_af90e2() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = ivec2(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countOneBits_af90e2() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = ivec2(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.wgsl
index e7f605a..b3e9dc0 100644
--- a/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/af90e2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn countOneBits_af90e2() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_af90e2();
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl
index 5e6824c..a3820e7 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn countOneBits(i32) -> i32
 fn countOneBits_fd88b2() -> i32{
   var arg_0 = 1i;
   var res: i32 = countOneBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_fd88b2();
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.dxc.hlsl
index f92e2e2..34356de 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countOneBits_fd88b2() {
   int arg_0 = 1;
   int res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.fxc.hlsl
index f92e2e2..34356de 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countOneBits_fd88b2() {
   int arg_0 = 1;
   int res = asint(countbits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countOneBits_fd88b2()));
   return;
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.glsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.glsl
index 2cecff8..edb21f8 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countOneBits_fd88b2() {
   int arg_0 = 1;
   int res = int(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countOneBits_fd88b2() {
   int arg_0 = 1;
   int res = int(bitCount(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.wgsl
index 5116016..f62626b 100644
--- a/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countOneBits/fd88b2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn countOneBits_fd88b2() -> i32 {
   var arg_0 = 1i;
   var res : i32 = countOneBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countOneBits_fd88b2();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl
index 9f10173..5a59ed2 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn countTrailingZeros(vec<2, u32>) -> vec<2, u32>
 fn countTrailingZeros_1ad138() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1ad138();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl
index 537005a..5295a61 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countTrailingZeros_1ad138() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_1ad138()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl
index 537005a..5295a61 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 countTrailingZeros_1ad138() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_1ad138()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.glsl
index 2274a15..86efec1 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countTrailingZeros_1ad138() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 countTrailingZeros_1ad138() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.wgsl
index 9c1758c..2a7b2da 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1ad138.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn countTrailingZeros_1ad138() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1ad138();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl
index 992862f..f723326 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn countTrailingZeros(vec<4, i32>) -> vec<4, i32>
 fn countTrailingZeros_1dc84a() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1dc84a();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl
index 16923b1..314f2ab 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countTrailingZeros_1dc84a() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl
index 16923b1..314f2ab 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 countTrailingZeros_1dc84a() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_1dc84a()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.glsl
index b883bba..d85f4ad 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countTrailingZeros_1dc84a() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 countTrailingZeros_1dc84a() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.wgsl
index 7130462..5087395 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/1dc84a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn countTrailingZeros_1dc84a() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_1dc84a();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl
index b4c2fd2..353fd6c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn countTrailingZeros(u32) -> u32
 fn countTrailingZeros_21e394() -> u32{
   var arg_0 = 1u;
   var res: u32 = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_21e394();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl
index 56c1d98..623e72c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countTrailingZeros_21e394() {
   uint arg_0 = 1u;
   uint res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_21e394()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl
index 56c1d98..623e72c 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint countTrailingZeros_21e394() {
   uint arg_0 = 1u;
   uint res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_21e394()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.glsl
index 43b3850..7360d08 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countTrailingZeros_21e394() {
   uint arg_0 = 1u;
   uint res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -57,16 +57,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint countTrailingZeros_21e394() {
   uint arg_0 = 1u;
   uint res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.wgsl
index 942ce41..733709e 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/21e394.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn countTrailingZeros_21e394() -> u32 {
   var arg_0 = 1u;
   var res : u32 = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_21e394();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl
index f491e84..8249b26 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn countTrailingZeros(vec<2, i32>) -> vec<2, i32>
 fn countTrailingZeros_327c37() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_327c37();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl
index 3ae59cd..ec8a286 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countTrailingZeros_327c37() {
   int2 arg_0 = (1).xx;
   int2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl
index 3ae59cd..ec8a286 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 countTrailingZeros_327c37() {
   int2 arg_0 = (1).xx;
   int2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(countTrailingZeros_327c37()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.glsl
index 86fefc0..a63271a 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countTrailingZeros_327c37() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 countTrailingZeros_327c37() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.wgsl
index a9d7735..e82d89d 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/327c37.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn countTrailingZeros_327c37() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_327c37();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl
index 06f2ad3..077a105 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn countTrailingZeros(i32) -> i32
 fn countTrailingZeros_42fed6() -> i32{
   var arg_0 = 1i;
   var res: i32 = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_42fed6();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl
index fa427cb..563d114 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countTrailingZeros_42fed6() {
   int arg_0 = 1;
   int res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl
index fa427cb..563d114 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int countTrailingZeros_42fed6() {
   int arg_0 = 1;
   int res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(countTrailingZeros_42fed6()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.glsl
index b7d8147..ad65af1 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countTrailingZeros_42fed6() {
   int arg_0 = 1;
   int res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -57,16 +57,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int countTrailingZeros_42fed6() {
   int arg_0 = 1;
   int res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.wgsl
index 0521f74..543dde7 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/42fed6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn countTrailingZeros_42fed6() -> i32 {
   var arg_0 = 1i;
   var res : i32 = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_42fed6();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl
index b471127..bb87bc3 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn countTrailingZeros(vec<3, u32>) -> vec<3, u32>
 fn countTrailingZeros_8ed26f() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_8ed26f();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl
index 5f1a6dd..198e62a 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countTrailingZeros_8ed26f() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_8ed26f()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl
index 5f1a6dd..198e62a 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 countTrailingZeros_8ed26f() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_8ed26f()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.glsl
index 4cbcbdb..5b064ea 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 countTrailingZeros_8ed26f() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -68,17 +68,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 countTrailingZeros_8ed26f() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.wgsl
index 2475526..ab28497 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/8ed26f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn countTrailingZeros_8ed26f() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_8ed26f();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl
index b8d4d84..1b94774 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn countTrailingZeros(vec<3, i32>) -> vec<3, i32>
 fn countTrailingZeros_acfacb() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_acfacb();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl
index 8f84bc4..4afa62d 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countTrailingZeros_acfacb() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl
index 8f84bc4..4afa62d 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 countTrailingZeros_acfacb() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(countTrailingZeros_acfacb()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.glsl
index b52d2c3..bff083b 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 countTrailingZeros_acfacb() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -68,17 +68,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 countTrailingZeros_acfacb() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.wgsl
index 494ad37..3d475af 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/acfacb.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn countTrailingZeros_acfacb() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_acfacb();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl
index 842068e..027ee38 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn countTrailingZeros(vec<4, u32>) -> vec<4, u32>
 fn countTrailingZeros_d2b4a0() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = countTrailingZeros(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_d2b4a0();
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl
index 7fea9d6..0220436 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countTrailingZeros_d2b4a0() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_d2b4a0()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl
index 7fea9d6..0220436 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 countTrailingZeros_d2b4a0() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(countTrailingZeros_d2b4a0()));
   return;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.glsl
index 2bac5c0..69ea721 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countTrailingZeros_d2b4a0() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) + is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 countTrailingZeros_d2b4a0() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_count_trailing_zeros(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.wgsl
index 586c301..a356a62 100644
--- a/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/countTrailingZeros/d2b4a0.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn countTrailingZeros_d2b4a0() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = countTrailingZeros(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = countTrailingZeros_d2b4a0();
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl
index bb679e4..3a1344c 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn cross(vec3<f32>, vec3<f32>) -> vec3<f32>
 fn cross_041cb0() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = cross(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_041cb0();
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl
index fae07a7..1b3da68 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cross_041cb0() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cross_041cb0()));
   return;
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl
index fae07a7..1b3da68 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 cross_041cb0() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(cross_041cb0()));
   return;
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl
index 2ceede7..0aa6397 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 cross_041cb0() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 cross_041cb0() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl
index 884878a..af5aaab 100644
--- a/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cross/041cb0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn cross_041cb0() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_041cb0();
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl
index 648a993..ab342c6 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn cross(vec3<f16>, vec3<f16>) -> vec3<f16>
 fn cross_9857cb() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = cross(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_9857cb();
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.dxc.hlsl
index ba22ba1..89b54a8 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> cross_9857cb() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, cross_9857cb());
   return;
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.glsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.glsl
index ba72e04..2aab7ab 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cross_9857cb() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 cross_9857cb() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl
index 8f6e5f2..f0fa39d 100644
--- a/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/cross/9857cb.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn cross_9857cb() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = cross_9857cb();
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl
index e779cde..a780b91 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn degrees(vec<4, f32>) -> vec<4, f32>
 fn degrees_0d170c() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_0d170c();
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl
index 63b2336..6336efc 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 degrees_0d170c() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(degrees_0d170c()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl
index 63b2336..6336efc 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 degrees_0d170c() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(degrees_0d170c()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl
index abd22ff..81c8f72 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 degrees_0d170c() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 degrees_0d170c() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.wgsl
index 136a030..5f10d51 100644
--- a/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/0d170c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn degrees_0d170c() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_0d170c();
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl
index 9dd0c1b..18c7b08 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn degrees(vec<2, f32>) -> vec<2, f32>
 fn degrees_1ad5df() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_1ad5df();
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl
index 0770647..bbe011c 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 degrees_1ad5df() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl
index 0770647..bbe011c 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 degrees_1ad5df() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(degrees_1ad5df()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl
index 68c06ef..536a8cf 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 degrees_1ad5df() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 degrees_1ad5df() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.wgsl
index 8216eca..4752a54 100644
--- a/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/1ad5df.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn degrees_1ad5df() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_1ad5df();
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl
index 96a94d7..05a3200 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn degrees(vec<3, f32>) -> vec<3, f32>
 fn degrees_2af623() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_2af623();
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl
index b9075b1..dfc864e 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 degrees_2af623() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(degrees_2af623()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl
index b9075b1..dfc864e 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 degrees_2af623() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(degrees_2af623()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl
index f82b2b8..5baaeb0 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.glsl
@@ -7,17 +7,17 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 degrees_2af623() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -38,17 +38,17 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 degrees_2af623() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.wgsl
index 75d182f..75f39a8 100644
--- a/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/2af623.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn degrees_2af623() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_2af623();
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl
index 080d21e..bcf128e 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn degrees(vec<4, f16>) -> vec<4, f16>
 fn degrees_3055d3() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_3055d3();
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl
index abf3c51..a19cf74 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> degrees_3055d3() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, degrees_3055d3());
   return;
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl
index 96032af..4a9ea2f 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 degrees_3055d3() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 degrees_3055d3() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.wgsl
index ef921b9..3b306fe 100644
--- a/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/3055d3.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn degrees_3055d3() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_3055d3();
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl
index 3081a7e..db113c3 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn degrees(f32) -> f32
 fn degrees_51f705() -> f32{
   var arg_0 = 1.f;
   var res: f32 = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_51f705();
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl
index 1bd34f2..576481b 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float degrees_51f705() {
   float arg_0 = 1.0f;
   float res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(degrees_51f705()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl
index 1bd34f2..576481b 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float degrees_51f705() {
   float arg_0 = 1.0f;
   float res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(degrees_51f705()));
   return;
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl
index f7e3322..7652603 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float degrees_51f705() {
   float arg_0 = 1.0f;
   float res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float degrees_51f705() {
   float arg_0 = 1.0f;
   float res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.wgsl
index 078206b..b2c9a4c 100644
--- a/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/51f705.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn degrees_51f705() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_51f705();
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl
index 3b3bf4c..fd6255e 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn degrees(f16) -> f16
 fn degrees_5e9805() -> f16{
   var arg_0 = 1.h;
   var res: f16 = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_5e9805();
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl
index 230b57d..4d55e92 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t degrees_5e9805() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, degrees_5e9805());
   return;
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl
index 4bb1ce2..23c2811 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t degrees_5e9805() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t degrees_5e9805() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.wgsl
index c97ba06..ed94988 100644
--- a/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/5e9805.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn degrees_5e9805() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_5e9805();
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl
index 76896b7..849d7c1 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn degrees(vec<3, f16>) -> vec<3, f16>
 fn degrees_dfe8f4() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_dfe8f4();
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl
index 0ddfff6..8c705b8 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> degrees_dfe8f4() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, degrees_dfe8f4());
   return;
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl
index 0d7b3f1..8c582e7 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 degrees_dfe8f4() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 degrees_dfe8f4() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.wgsl
index 716ef5e..538f320 100644
--- a/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/dfe8f4.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn degrees_dfe8f4() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_dfe8f4();
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl
index e8cd1cc..1d51d0e 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn degrees(vec<2, f16>) -> vec<2, f16>
 fn degrees_f59715() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = degrees(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_f59715();
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl
index fb6a93d..6e1277e 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 57.29577951308232286465;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> degrees_f59715() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tint_degrees(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, degrees_f59715());
   return;
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl
index 5895f08..f7277da 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 degrees_f59715() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 degrees_f59715() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tint_degrees(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.wgsl b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.wgsl
index 327985d..55eae7a 100644
--- a/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/degrees/f59715.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn degrees_f59715() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = degrees(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = degrees_f59715();
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl
index e4de237..c40b9ff 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn determinant(mat<3, 3, f32>) -> f32
 fn determinant_2b62ba() -> f32{
   var arg_0 = mat3x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: f32 = determinant(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_2b62ba();
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.dxc.hlsl
index 72c626e..b4ef6bf 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_2b62ba() {
   float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   float res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_2b62ba()));
   return;
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.fxc.hlsl
index 72c626e..b4ef6bf 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_2b62ba() {
   float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   float res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_2b62ba()));
   return;
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.glsl
index 3a3102b..f7b85e4 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_2b62ba() {
   mat3 arg_0 = mat3(vec3(1.0f), vec3(1.0f), vec3(1.0f));
   float res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_2b62ba() {
   mat3 arg_0 = mat3(vec3(1.0f), vec3(1.0f), vec3(1.0f));
   float res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.wgsl
index a0269f0..e436e0f 100644
--- a/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/determinant/2b62ba.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn determinant_2b62ba() -> f32 {
   var arg_0 = mat3x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : f32 = determinant(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_2b62ba();
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl
index d465cf6..5bc2932 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn determinant(mat<4, 4, f16>) -> f16
 fn determinant_32bfde() -> f16{
   var arg_0 = mat4x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: f16 = determinant(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_32bfde();
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.dxc.hlsl
index 3875b7b..8f50e1e 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t determinant_32bfde() {
   matrix<float16_t, 4, 4> arg_0 = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   float16_t res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, determinant_32bfde());
   return;
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.glsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.glsl
index cd34005..37206a8 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_32bfde() {
   f16mat4 arg_0 = f16mat4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   float16_t res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_32bfde() {
   f16mat4 arg_0 = f16mat4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   float16_t res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.wgsl b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.wgsl
index 8c4353a..191cfb3 100644
--- a/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/determinant/32bfde.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn determinant_32bfde() -> f16 {
   var arg_0 = mat4x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : f16 = determinant(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_32bfde();
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl
index b82c2ad..1d16129 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn determinant(mat<4, 4, f32>) -> f32
 fn determinant_a0a87c() -> f32{
   var arg_0 = mat4x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: f32 = determinant(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_a0a87c();
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.dxc.hlsl
index 19ef847..bb552c4 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_a0a87c() {
   float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   float res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_a0a87c()));
   return;
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.fxc.hlsl
index 19ef847..bb552c4 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_a0a87c() {
   float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   float res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_a0a87c()));
   return;
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.glsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.glsl
index d26bb1c..4be242d 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_a0a87c() {
   mat4 arg_0 = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
   float res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_a0a87c() {
   mat4 arg_0 = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
   float res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.wgsl
index 98eb3be..1e897c7 100644
--- a/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/determinant/a0a87c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn determinant_a0a87c() -> f32 {
   var arg_0 = mat4x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : f32 = determinant(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_a0a87c();
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl
index f8c8cbc..2b32e50 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn determinant(mat<3, 3, f16>) -> f16
 fn determinant_d7c86f() -> f16{
   var arg_0 = mat3x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: f16 = determinant(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_d7c86f();
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.dxc.hlsl
index b244a33..22aa6e6 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t determinant_d7c86f() {
   matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   float16_t res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, determinant_d7c86f());
   return;
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.glsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.glsl
index 9762ba0..4afaddc 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_d7c86f() {
   f16mat3 arg_0 = f16mat3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   float16_t res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_d7c86f() {
   f16mat3 arg_0 = f16mat3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   float16_t res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.wgsl
index 04fea42..f48df12 100644
--- a/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/determinant/d7c86f.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn determinant_d7c86f() -> f16 {
   var arg_0 = mat3x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : f16 = determinant(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_d7c86f();
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl
index 3758ebd..42b8321 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn determinant(mat<2, 2, f32>) -> f32
 fn determinant_e19305() -> f32{
   var arg_0 = mat2x2<f32>(1.f, 1.f, 1.f, 1.f);
   var res: f32 = determinant(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_e19305();
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.dxc.hlsl
index 8e0455e..a6af02b 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_e19305() {
   float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
   float res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_e19305()));
   return;
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.fxc.hlsl
index 8e0455e..a6af02b 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float determinant_e19305() {
   float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
   float res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(determinant_e19305()));
   return;
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.glsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.glsl
index e91f45e..57b945b 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_e19305() {
   mat2 arg_0 = mat2(vec2(1.0f), vec2(1.0f));
   float res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float determinant_e19305() {
   mat2 arg_0 = mat2(vec2(1.0f), vec2(1.0f));
   float res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.wgsl b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.wgsl
index b6810d6..f65559c 100644
--- a/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/determinant/e19305.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn determinant_e19305() -> f32 {
   var arg_0 = mat2x2<f32>(1.0f, 1.0f, 1.0f, 1.0f);
   var res : f32 = determinant(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_e19305();
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl
index 8f09c50..572d129 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn determinant(mat<2, 2, f16>) -> f16
 fn determinant_fc12a5() -> f16{
   var arg_0 = mat2x2<f16>(1.h, 1.h, 1.h, 1.h);
   var res: f16 = determinant(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_fc12a5();
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.dxc.hlsl
index 87f0fbd..b2fe93d 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t determinant_fc12a5() {
   matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   float16_t res = determinant(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, determinant_fc12a5());
   return;
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.glsl
index 4594577..cdfae1a 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_fc12a5() {
   f16mat2 arg_0 = f16mat2(f16vec2(1.0hf), f16vec2(1.0hf));
   float16_t res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t determinant_fc12a5() {
   f16mat2 arg_0 = f16mat2(f16vec2(1.0hf), f16vec2(1.0hf));
   float16_t res = determinant(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.wgsl
index 01dadd2..2fb777b 100644
--- a/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/determinant/fc12a5.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn determinant_fc12a5() -> f16 {
   var arg_0 = mat2x2<f16>(1.0h, 1.0h, 1.0h, 1.0h);
   var res : f16 = determinant(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = determinant_fc12a5();
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl
index 3d168a7..7be4b47 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(vec<3, f32>, vec<3, f32>) -> f32
 fn distance_0657d4() -> f32{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: f32 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_0657d4();
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.dxc.hlsl
index abbae45..4dbfa20 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_0657d4() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_0657d4()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.fxc.hlsl
index abbae45..4dbfa20 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_0657d4() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_0657d4()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.glsl
index 674797b..d81da6a 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_0657d4() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_0657d4() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.wgsl
index 6bef0fe..bf9ba9d 100644
--- a/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/0657d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_0657d4() -> f32 {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_0657d4();
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl
index 212bfc2..3ac8778 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(vec<4, f16>, vec<4, f16>) -> f16
 fn distance_7272f3() -> f16{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: f16 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7272f3();
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.dxc.hlsl
index a5cc643..dbf7df1 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_7272f3() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_7272f3());
   return;
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.glsl
index 72b981c..81d4e84 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7272f3() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7272f3() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.wgsl
index 473d4d3..30cd077 100644
--- a/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/7272f3.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_7272f3() -> f16 {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7272f3();
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl
index 07d89c6..fd64a51 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(f16, f16) -> f16
 fn distance_7d201f() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7d201f();
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.dxc.hlsl
index b1da175a4..8e558b6 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_7d201f() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_7d201f());
   return;
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.glsl
index 4516865..b4ce29f 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7d201f() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_7d201f() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.wgsl
index 1e47a1a..4850bf8 100644
--- a/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/7d201f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_7d201f() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_7d201f();
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl
index 3bff850..61e6b19 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(vec<2, f16>, vec<2, f16>) -> f16
 fn distance_892a5d() -> f16{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: f16 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_892a5d();
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.dxc.hlsl
index 0887894..73cdf07 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_892a5d() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_892a5d());
   return;
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.glsl
index f454990..45c222e 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_892a5d() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_892a5d() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.wgsl
index 6cb1de7..00410e2 100644
--- a/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/892a5d.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_892a5d() -> f16 {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_892a5d();
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl
index 3311395..e3b90e6 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn distance(vec<3, f16>, vec<3, f16>) -> f16
 fn distance_928fa0() -> f16{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: f16 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_928fa0();
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.dxc.hlsl
index 8a363c6..ba940e2 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t distance_928fa0() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, distance_928fa0());
   return;
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.glsl
index 08eb9a6..9fe2546 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_928fa0() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t distance_928fa0() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.wgsl
index 29cdb04..828a015 100644
--- a/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/928fa0.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn distance_928fa0() -> f16 {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_928fa0();
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl
index fdc0e8f..333edeb 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(vec<4, f32>, vec<4, f32>) -> f32
 fn distance_9646ea() -> f32{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: f32 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_9646ea();
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.dxc.hlsl
index a0eb04b..e10decd 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_9646ea() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_9646ea()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.fxc.hlsl
index a0eb04b..e10decd 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_9646ea() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_9646ea()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.glsl
index 8d11496..d3d0f56 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_9646ea() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_9646ea() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.wgsl
index abb0755..1b929e1 100644
--- a/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/9646ea.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_9646ea() -> f32 {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_9646ea();
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl
index 6b8d3ee2..d83d569 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(vec<2, f32>, vec<2, f32>) -> f32
 fn distance_aa4055() -> f32{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: f32 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_aa4055();
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.dxc.hlsl
index 714315c..2e021bc 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_aa4055() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_aa4055()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.fxc.hlsl
index 714315c..2e021bc 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_aa4055() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_aa4055()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.glsl
index a31a869..73a0619 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_aa4055() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_aa4055() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.wgsl
index 2aeb7e7..6d7d72f 100644
--- a/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/aa4055.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_aa4055() -> f32 {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_aa4055();
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl
index b700c05..11504c7 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn distance(f32, f32) -> f32
 fn distance_cfed73() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = distance(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_cfed73();
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.dxc.hlsl
index 922832d..9ccfdd7 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_cfed73() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_cfed73()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.fxc.hlsl
index 922832d..9ccfdd7 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float distance_cfed73() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(distance_cfed73()));
   return;
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.glsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.glsl
index 069655d..deaf5a7 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_cfed73() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float distance_cfed73() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.wgsl b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.wgsl
index 73a9572..b3f2f2d 100644
--- a/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/distance/cfed73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn distance_cfed73() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = distance_cfed73();
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl
index b1029ce..637dead 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dot(vec<4, f32>, vec<4, f32>) -> f32
 fn dot_0c577b() -> f32{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: f32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_0c577b();
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.dxc.hlsl
index 37eb09d..bf00351 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_0c577b() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_0c577b()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.fxc.hlsl
index 37eb09d..bf00351 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_0c577b() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_0c577b()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.glsl
index 77e8389..2dfea0a 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_0c577b() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_0c577b() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.wgsl
index 63ccfa8..90521ae 100644
--- a/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/0c577b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dot_0c577b() -> f32 {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_0c577b();
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl
index 4d002fc..11ce697 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot(vec<3, u32>, vec<3, u32>) -> u32
 fn dot_7548a0() -> u32{
   var arg_0 = vec3<u32>(1u);
@@ -42,8 +45,6 @@
   var res: u32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_7548a0();
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.dxc.hlsl
index a51088b..2891ce1 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_7548a0() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_7548a0()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.fxc.hlsl
index a51088b..2891ce1 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_7548a0() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_7548a0()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.glsl
index 2d2d258..2942ac0 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.glsl
@@ -6,6 +6,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_7548a0() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -36,6 +36,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_7548a0() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.wgsl
index 9baee54..85f89cb 100644
--- a/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/7548a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot_7548a0() -> u32 {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_7548a0();
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl
index a2e097f..5deec66 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dot(vec<2, f32>, vec<2, f32>) -> f32
 fn dot_883f0e() -> f32{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: f32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_883f0e();
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.dxc.hlsl
index da59807..10b72f0 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_883f0e() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_883f0e()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.fxc.hlsl
index da59807..10b72f0 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_883f0e() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_883f0e()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.glsl
index 0fcbadc..e46533a 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_883f0e() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_883f0e() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.wgsl
index ec8d3e5..f5259b7 100644
--- a/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/883f0e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dot_883f0e() -> f32 {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_883f0e();
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl
index f9619f6..c1f8718 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn dot(vec<3, f16>, vec<3, f16>) -> f16
 fn dot_8e40f1() -> f16{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: f16 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_8e40f1();
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.dxc.hlsl
index e25a1f9..dd00ce9 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t dot_8e40f1() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, dot_8e40f1());
   return;
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.glsl
index 8f0eb66..d2e277e 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_8e40f1() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_8e40f1() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.wgsl
index 647ff97..74cab0d 100644
--- a/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/8e40f1.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn dot_8e40f1() -> f16 {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_8e40f1();
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl
index 0491816..ed5b0f2 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot(vec<2, u32>, vec<2, u32>) -> u32
 fn dot_97c7ee() -> u32{
   var arg_0 = vec2<u32>(1u);
@@ -42,8 +45,6 @@
   var res: u32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_97c7ee();
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.dxc.hlsl
index f4758af..6b32d6b 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_97c7ee() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_97c7ee()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.fxc.hlsl
index f4758af..6b32d6b 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_97c7ee() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_97c7ee()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.glsl
index d0534b6..96a1998 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.glsl
@@ -6,6 +6,10 @@
   return a[0]*b[0] + a[1]*b[1];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_97c7ee() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -36,6 +36,10 @@
   return a[0]*b[0] + a[1]*b[1];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_97c7ee() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.wgsl
index ff7f536..e58f9f7 100644
--- a/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/97c7ee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot_97c7ee() -> u32 {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_97c7ee();
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl
index 23756cf..c5eb26b 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dot(vec<3, f32>, vec<3, f32>) -> f32
 fn dot_ba4246() -> f32{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: f32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ba4246();
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.dxc.hlsl
index 6c8c694..508692b 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_ba4246() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ba4246()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.fxc.hlsl
index 6c8c694..508692b 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dot_ba4246() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ba4246()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.glsl
index 8651e69..cb12316 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_ba4246() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dot_ba4246() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.wgsl
index b5c12cb..1cf452b 100644
--- a/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/ba4246.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dot_ba4246() -> f32 {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ba4246();
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl
index dc26e54..2b52401 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn dot(vec<2, f16>, vec<2, f16>) -> f16
 fn dot_cd5a04() -> f16{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: f16 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_cd5a04();
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.dxc.hlsl
index 6129430..685a99d 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t dot_cd5a04() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, dot_cd5a04());
   return;
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.glsl
index 0d4743d..5aa99bd 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_cd5a04() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_cd5a04() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.wgsl
index 4007b09..b675df0 100644
--- a/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/cd5a04.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn dot_cd5a04() -> f16 {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_cd5a04();
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl
index 8f196ae..58be1a1 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn dot(vec<4, f16>, vec<4, f16>) -> f16
 fn dot_d0d179() -> f16{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: f16 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_d0d179();
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.dxc.hlsl
index dd892d5..38db5c1 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t dot_d0d179() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, dot_d0d179());
   return;
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.glsl
index bd4af67..e955324 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_d0d179() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t dot_d0d179() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.wgsl
index 852d12c..58c88a3 100644
--- a/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/d0d179.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn dot_d0d179() -> f16 {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_d0d179();
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl
index 4ff71c3..d97e24b 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot(vec<4, u32>, vec<4, u32>) -> u32
 fn dot_e994c7() -> u32{
   var arg_0 = vec4<u32>(1u);
@@ -42,8 +45,6 @@
   var res: u32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_e994c7();
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.dxc.hlsl
index 0abece8..becdc88 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_e994c7() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_e994c7()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.fxc.hlsl
index 0abece8..becdc88 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot_e994c7() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_e994c7()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.glsl
index 1463e2b..c924ed7 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.glsl
@@ -6,6 +6,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_e994c7() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -36,6 +36,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot_e994c7() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.wgsl
index 844dfe3..6664c39 100644
--- a/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/e994c7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot_e994c7() -> u32 {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_e994c7();
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl
index 3e52c57..27f9bf5 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot(vec<4, i32>, vec<4, i32>) -> i32
 fn dot_ef6b1d() -> i32{
   var arg_0 = vec4<i32>(1i);
@@ -42,8 +45,6 @@
   var res: i32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ef6b1d();
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.dxc.hlsl
index 5102c36..7e8a4f8 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_ef6b1d() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ef6b1d()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.fxc.hlsl
index 5102c36..7e8a4f8 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_ef6b1d() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_ef6b1d()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.glsl
index cca1d61..0c31f54 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.glsl
@@ -6,6 +6,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_ef6b1d() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -36,6 +36,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2] + a[3]*b[3];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_ef6b1d() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.wgsl
index 995ab26..81ede95 100644
--- a/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/ef6b1d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot_ef6b1d() -> i32 {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_ef6b1d();
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl
index b2eb3bf..646ee51 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot(vec<3, i32>, vec<3, i32>) -> i32
 fn dot_f1312c() -> i32{
   var arg_0 = vec3<i32>(1i);
@@ -42,8 +45,6 @@
   var res: i32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_f1312c();
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.dxc.hlsl
index 0dc92b0..8e46d7b 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_f1312c() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_f1312c()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.fxc.hlsl
index 0dc92b0..8e46d7b 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_f1312c() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_f1312c()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.glsl
index c1bb3b1..f8fd2ad 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.glsl
@@ -6,6 +6,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_f1312c() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -36,6 +36,10 @@
   return a[0]*b[0] + a[1]*b[1] + a[2]*b[2];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_f1312c() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.wgsl
index b285d6e..1ae2d73 100644
--- a/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/f1312c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot_f1312c() -> i32 {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_f1312c();
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl
index 258ba5d..021c318 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot(vec<2, i32>, vec<2, i32>) -> i32
 fn dot_fc5f7c() -> i32{
   var arg_0 = vec2<i32>(1i);
@@ -42,8 +45,6 @@
   var res: i32 = dot(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_fc5f7c();
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.dxc.hlsl
index 1b897cd..0a47e3e 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_fc5f7c() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_fc5f7c()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.fxc.hlsl
index 1b897cd..0a47e3e 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot_fc5f7c() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot_fc5f7c()));
   return;
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.glsl
index 131a431..d1272e2 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.glsl
@@ -6,6 +6,10 @@
   return a[0]*b[0] + a[1]*b[1];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_fc5f7c() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -36,6 +36,10 @@
   return a[0]*b[0] + a[1]*b[1];
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot_fc5f7c() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.wgsl
index f90b2d7..50dc36a 100644
--- a/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot/fc5f7c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot_fc5f7c() -> i32 {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot_fc5f7c();
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl
index 36f95d5..3a9fedd 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl
@@ -36,6 +36,9 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 64
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn dot4I8Packed(u32, u32) -> i32
 fn dot4I8Packed_881e62() -> i32{
   var arg_0 = 1u;
@@ -43,8 +46,6 @@
   var res: i32 = dot4I8Packed(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4I8Packed_881e62();
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl
index c38c0ea..bf538a9 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.dxc.hlsl
@@ -3,6 +3,8 @@
   return dot4add_i8packed(param_0, param_1, accumulator);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot4I8Packed_881e62() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
   return;
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl
index edd1363..941709d 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return dot(a_i8, b_i8);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int dot4I8Packed_881e62() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -11,8 +13,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4I8Packed_881e62()));
   return;
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.glsl
index 6e52199..50d5ee7 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.glsl
@@ -12,6 +12,10 @@
   return tint_int_dot(a_i8, b_i8);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot4I8Packed_881e62() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -19,10 +23,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -48,6 +48,10 @@
   return tint_int_dot(a_i8, b_i8);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int dot4I8Packed_881e62() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -55,10 +59,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.wgsl
index 59599d7..55e85ce 100644
--- a/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot4I8Packed/881e62.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn dot4I8Packed_881e62() -> i32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4I8Packed_881e62();
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl
index 70db555..22376e6 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl
@@ -36,6 +36,9 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 64
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn dot4U8Packed(u32, u32) -> u32
 fn dot4U8Packed_fbed7b() -> u32{
   var arg_0 = 1u;
@@ -43,8 +46,6 @@
   var res: u32 = dot4U8Packed(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4U8Packed_fbed7b();
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl
index 0840da1..3b648d8 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.dxc.hlsl
@@ -3,6 +3,8 @@
   return dot4add_u8packed(param_0, param_1, accumulator);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot4U8Packed_fbed7b() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -10,8 +12,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4U8Packed_fbed7b()));
   return;
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl
index 191f35f..c8307c3 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return dot(a_u8, b_u8);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint dot4U8Packed_fbed7b() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -11,8 +13,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dot4U8Packed_fbed7b()));
   return;
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.glsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.glsl
index d3a8ecb..ba88c3f 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.glsl
@@ -12,6 +12,10 @@
   return tint_int_dot(a_u8, b_u8);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot4U8Packed_fbed7b() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -19,10 +23,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,6 +48,10 @@
   return tint_int_dot(a_u8, b_u8);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint dot4U8Packed_fbed7b() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -55,10 +59,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.wgsl
index 740db56..e44566b 100644
--- a/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dot4U8Packed/fbed7b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn dot4U8Packed_fbed7b() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dot4U8Packed_fbed7b();
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl
index 7aa2e99..3393b25 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdx(vec<3, f32>) -> vec<3, f32>
 fn dpdx_0763f7() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = dpdx(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_0763f7();
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.dxc.hlsl
index 54fb8e9..f43d207 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdx_0763f7() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.fxc.hlsl
index 54fb8e9..f43d207 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdx_0763f7() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdx_0763f7()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.glsl
index a5b1fa2..8021516 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 dpdx_0763f7() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_0763f7();
 }
diff --git a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.wgsl
index 76bcd86..65d6087 100644
--- a/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/0763f7.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdx_0763f7() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = dpdx(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_0763f7();
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl
index a412632..0e26d20 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdx(vec<2, f32>) -> vec<2, f32>
 fn dpdx_99edb1() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = dpdx(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_99edb1();
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.dxc.hlsl
index 8fbe3e7..6d9054d 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdx_99edb1() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.fxc.hlsl
index 8fbe3e7..6d9054d 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdx_99edb1() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdx_99edb1()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.glsl
index 292c6a7..dabea00 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdx_99edb1() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_99edb1();
 }
diff --git a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.wgsl
index 2b825cc..25badf2 100644
--- a/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/99edb1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdx_99edb1() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = dpdx(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_99edb1();
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl
index 9e18a10..36db3e3 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdx(vec<4, f32>) -> vec<4, f32>
 fn dpdx_c487fa() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = dpdx(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_c487fa();
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.dxc.hlsl
index be68fc6..7783d67 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdx_c487fa() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.fxc.hlsl
index be68fc6..7783d67 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdx_c487fa() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdx_c487fa()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.glsl
index 053cb50..653532d 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdx_c487fa() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_c487fa();
 }
diff --git a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.wgsl
index 5a48fa0..4311699 100644
--- a/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/c487fa.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdx_c487fa() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = dpdx(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_c487fa();
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl
index 60dc4e3..73e3c19 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdx(f32) -> f32
 fn dpdx_e263de() -> f32{
   var arg_0 = 1.f;
   var res: f32 = dpdx(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_e263de();
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.dxc.hlsl
index 3d2c471..33f007a 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdx_e263de() {
   float arg_0 = 1.0f;
   float res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdx_e263de()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.fxc.hlsl
index 3d2c471..33f007a 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdx_e263de() {
   float arg_0 = 1.0f;
   float res = ddx(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdx_e263de()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.glsl
index e2bd30c..c70c29f 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdx_e263de() {
   float arg_0 = 1.0f;
   float res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdx_e263de();
 }
diff --git a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.wgsl
index 10a232f..3884899 100644
--- a/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdx/e263de.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdx_e263de() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = dpdx(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdx_e263de();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl
index bb08ee6..9a33d62 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdxCoarse(f32) -> f32
 fn dpdxCoarse_029152() -> f32{
   var arg_0 = 1.f;
   var res: f32 = dpdxCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_029152();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.dxc.hlsl
index 61933ff..a898c98 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxCoarse_029152() {
   float arg_0 = 1.0f;
   float res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.fxc.hlsl
index 61933ff..a898c98 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxCoarse_029152() {
   float arg_0 = 1.0f;
   float res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxCoarse_029152()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.glsl
index 0d6dbd4..4eeca02d 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdxCoarse_029152() {
   float arg_0 = 1.0f;
   float res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_029152();
 }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.wgsl
index aee452b..0f8c54d 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/029152.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdxCoarse_029152() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = dpdxCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_029152();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl
index 2acecf6..bfcdbe4 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdxCoarse(vec<2, f32>) -> vec<2, f32>
 fn dpdxCoarse_9581cf() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = dpdxCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_9581cf();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl
index 3ccd39a..4e37e5f 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxCoarse_9581cf() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl
index 3ccd39a..4e37e5f 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxCoarse_9581cf() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxCoarse_9581cf()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.glsl
index 33af305..e7df453 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdxCoarse_9581cf() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_9581cf();
 }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.wgsl
index 78c8cac..23011fd 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/9581cf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdxCoarse_9581cf() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = dpdxCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_9581cf();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl
index 4f0b075..24c8254 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdxCoarse(vec<4, f32>) -> vec<4, f32>
 fn dpdxCoarse_c28641() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = dpdxCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_c28641();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl
index b90278c..8284e00 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxCoarse_c28641() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl
index b90278c..8284e00 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxCoarse_c28641() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxCoarse_c28641()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.glsl
index bd5c0c1..f8139bf 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdxCoarse_c28641() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_c28641();
 }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.wgsl
index f2c14c9..e32d3ca 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/c28641.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdxCoarse_c28641() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = dpdxCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_c28641();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl
index 8c3d532..930c07b 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdxCoarse(vec<3, f32>) -> vec<3, f32>
 fn dpdxCoarse_f64d7b() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = dpdxCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_f64d7b();
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl
index 4197f32..8762268 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxCoarse_f64d7b() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl
index 4197f32..8762268 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxCoarse_f64d7b() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxCoarse_f64d7b()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.glsl
index 69ceaba..6a464df 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 dpdxCoarse_f64d7b() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxCoarse_f64d7b();
 }
diff --git a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.wgsl
index c6bb7c5..af5efcf 100644
--- a/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxCoarse/f64d7b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdxCoarse_f64d7b() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = dpdxCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxCoarse_f64d7b();
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl
index f6aa898..8b2f3dd 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdxFine(vec<4, f32>) -> vec<4, f32>
 fn dpdxFine_8c5069() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = dpdxFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_8c5069();
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.dxc.hlsl
index ab6a763..5035c60 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxFine_8c5069() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.fxc.hlsl
index ab6a763..5035c60 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdxFine_8c5069() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdxFine_8c5069()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.glsl
index 1e3879e..57db29e 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdxFine_8c5069() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_8c5069();
 }
diff --git a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.wgsl
index 66fca68..614aa5e 100644
--- a/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/8c5069.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdxFine_8c5069() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = dpdxFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_8c5069();
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl
index d212227..7260aaa 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdxFine(vec<2, f32>) -> vec<2, f32>
 fn dpdxFine_9631de() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = dpdxFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_9631de();
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.dxc.hlsl
index eaab2e5..ca5dfaa 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxFine_9631de() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.fxc.hlsl
index eaab2e5..ca5dfaa 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdxFine_9631de() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdxFine_9631de()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.glsl
index 41c65fd..708408d 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdxFine_9631de() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_9631de();
 }
diff --git a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.wgsl
index 737aac2..683b95e 100644
--- a/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/9631de.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdxFine_9631de() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = dpdxFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_9631de();
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl
index 7af69db..bfd1753 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdxFine(f32) -> f32
 fn dpdxFine_f401a2() -> f32{
   var arg_0 = 1.f;
   var res: f32 = dpdxFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f401a2();
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.dxc.hlsl
index 59257b3..bf7d097 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxFine_f401a2() {
   float arg_0 = 1.0f;
   float res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.fxc.hlsl
index 59257b3..bf7d097 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdxFine_f401a2() {
   float arg_0 = 1.0f;
   float res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdxFine_f401a2()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.glsl
index 05e841c..6837a83 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdxFine_f401a2() {
   float arg_0 = 1.0f;
   float res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_f401a2();
 }
diff --git a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.wgsl
index 7eee321..8570ad9 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f401a2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdxFine_f401a2() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = dpdxFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f401a2();
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl
index 0b15078..bb389c7 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdxFine(vec<3, f32>) -> vec<3, f32>
 fn dpdxFine_f92fb6() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = dpdxFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f92fb6();
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl
index b441f59..542329a 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxFine_f92fb6() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl
index b441f59..542329a 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdxFine_f92fb6() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddx_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdxFine_f92fb6()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.glsl
index 8e10722..7387da8 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 dpdxFine_f92fb6() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = dFdx(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdxFine_f92fb6();
 }
diff --git a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.wgsl
index fc1ad99..4bc4b85 100644
--- a/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdxFine/f92fb6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdxFine_f92fb6() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = dpdxFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdxFine_f92fb6();
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl
index 791799a..0c22323 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdy(vec<4, f32>) -> vec<4, f32>
 fn dpdy_699a05() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = dpdy(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_699a05();
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.dxc.hlsl
index 1932b7c..452ae93 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdy_699a05() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdy_699a05()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.fxc.hlsl
index 1932b7c..452ae93 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdy_699a05() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdy_699a05()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.glsl
index 381227c..1308dd2 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdy_699a05() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_699a05();
 }
diff --git a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.wgsl
index 0c41f4c..bee8896 100644
--- a/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/699a05.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdy_699a05() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = dpdy(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_699a05();
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl
index 90d1e49..9df6565 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdy(f32) -> f32
 fn dpdy_7f8d84() -> f32{
   var arg_0 = 1.f;
   var res: f32 = dpdy(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_7f8d84();
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.dxc.hlsl
index e63a26c..75a1825 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdy_7f8d84() {
   float arg_0 = 1.0f;
   float res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.fxc.hlsl
index e63a26c..75a1825 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdy_7f8d84() {
   float arg_0 = 1.0f;
   float res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdy_7f8d84()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.glsl
index d990cba..2c95f21 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdy_7f8d84() {
   float arg_0 = 1.0f;
   float res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_7f8d84();
 }
diff --git a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.wgsl
index 3543ae4..e9bf328 100644
--- a/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/7f8d84.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdy_7f8d84() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = dpdy(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_7f8d84();
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl
index ee74332..1e1e5d2 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdy(vec<2, f32>) -> vec<2, f32>
 fn dpdy_a8b56e() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = dpdy(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_a8b56e();
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.dxc.hlsl
index 4897347..959e319 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdy_a8b56e() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.fxc.hlsl
index 4897347..959e319 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdy_a8b56e() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdy_a8b56e()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.glsl
index 8f068dd..1c8fe7a 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdy_a8b56e() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_a8b56e();
 }
diff --git a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.wgsl
index c0cded1..9f5d7d8 100644
--- a/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/a8b56e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdy_a8b56e() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = dpdy(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_a8b56e();
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl
index 561b8ea..2ba36b7 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdy(vec<3, f32>) -> vec<3, f32>
 fn dpdy_feb40f() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = dpdy(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_feb40f();
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.dxc.hlsl
index f6df030..7ce14a8 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdy_feb40f() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.fxc.hlsl
index f6df030..7ce14a8 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdy_feb40f() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdy_feb40f()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.glsl
index 0b2afc5..3c01ea5 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 dpdy_feb40f() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdy_feb40f();
 }
diff --git a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.wgsl
index 18885e5..ba1e3b3 100644
--- a/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdy/feb40f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdy_feb40f() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = dpdy(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdy_feb40f();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl
index 6f51a6a..f95088c 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdyCoarse(vec<2, f32>) -> vec<2, f32>
 fn dpdyCoarse_3e1ab4() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = dpdyCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_3e1ab4();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl
index e563a76..9f4a68a 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyCoarse_3e1ab4() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl
index e563a76..9f4a68a 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyCoarse_3e1ab4() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyCoarse_3e1ab4()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.glsl
index 4fd0a79..29e87f3 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdyCoarse_3e1ab4() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_3e1ab4();
 }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
index 30a48be..d4c7c58 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/3e1ab4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdyCoarse_3e1ab4() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = dpdyCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_3e1ab4();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl
index cf8d1d3..aed889e 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdyCoarse(vec<4, f32>) -> vec<4, f32>
 fn dpdyCoarse_445d24() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = dpdyCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_445d24();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl
index d3bc8b7..1f4e389 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyCoarse_445d24() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl
index d3bc8b7..1f4e389 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyCoarse_445d24() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyCoarse_445d24()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.glsl
index a88f24b..eecec24 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdyCoarse_445d24() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_445d24();
 }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.wgsl
index a34dd79..65b51b1 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/445d24.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdyCoarse_445d24() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = dpdyCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_445d24();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl
index 72acb5b..5388461 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdyCoarse(f32) -> f32
 fn dpdyCoarse_870a7e() -> f32{
   var arg_0 = 1.f;
   var res: f32 = dpdyCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_870a7e();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl
index 61452d5..31bd676 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyCoarse_870a7e() {
   float arg_0 = 1.0f;
   float res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl
index 61452d5..31bd676 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyCoarse_870a7e() {
   float arg_0 = 1.0f;
   float res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyCoarse_870a7e()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.glsl
index 00c5cfe..87fd56f 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdyCoarse_870a7e() {
   float arg_0 = 1.0f;
   float res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_870a7e();
 }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.wgsl
index e54c376..689b7d4 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/870a7e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdyCoarse_870a7e() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = dpdyCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_870a7e();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl
index 1ca93c9..35874c0 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdyCoarse(vec<3, f32>) -> vec<3, f32>
 fn dpdyCoarse_ae1873() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = dpdyCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_ae1873();
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl
index 7472d4c..2746b82 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyCoarse_ae1873() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl
index 7472d4c..2746b82 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyCoarse_ae1873() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_coarse(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyCoarse_ae1873()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.glsl
index 3441888..f6048d3 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 dpdyCoarse_ae1873() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyCoarse_ae1873();
 }
diff --git a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.wgsl
index 1e40a5e..f823866 100644
--- a/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyCoarse/ae1873.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdyCoarse_ae1873() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = dpdyCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyCoarse_ae1873();
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl
index 61f5dae..cf07616 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn dpdyFine(vec<3, f32>) -> vec<3, f32>
 fn dpdyFine_1fb7ab() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = dpdyFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_1fb7ab();
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl
index 07173dc..3c44b30 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyFine_1fb7ab() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl
index 07173dc..3c44b30 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 dpdyFine_1fb7ab() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(dpdyFine_1fb7ab()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.glsl
index e153936..935c823 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 dpdyFine_1fb7ab() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_1fb7ab();
 }
diff --git a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.wgsl
index d5a5358..e581c0a 100644
--- a/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/1fb7ab.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn dpdyFine_1fb7ab() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = dpdyFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_1fb7ab();
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl
index 79bf106..fff446d 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn dpdyFine(f32) -> f32
 fn dpdyFine_6eb673() -> f32{
   var arg_0 = 1.f;
   var res: f32 = dpdyFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_6eb673();
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.dxc.hlsl
index d8c3e2f..5b06c5b 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyFine_6eb673() {
   float arg_0 = 1.0f;
   float res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.fxc.hlsl
index d8c3e2f..5b06c5b 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float dpdyFine_6eb673() {
   float arg_0 = 1.0f;
   float res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(dpdyFine_6eb673()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.glsl
index 97bc630..d759c3d 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float dpdyFine_6eb673() {
   float arg_0 = 1.0f;
   float res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_6eb673();
 }
diff --git a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.wgsl
index 4e68a64..41371f7 100644
--- a/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/6eb673.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn dpdyFine_6eb673() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = dpdyFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_6eb673();
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl
index ec1389e..ff156ad 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn dpdyFine(vec<4, f32>) -> vec<4, f32>
 fn dpdyFine_d0a648() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = dpdyFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_d0a648();
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.dxc.hlsl
index f0acca6..277a9b3 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyFine_d0a648() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.fxc.hlsl
index f0acca6..277a9b3 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 dpdyFine_d0a648() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(dpdyFine_d0a648()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.glsl
index 6ed1362..fbe099a 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 dpdyFine_d0a648() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_d0a648();
 }
diff --git a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.wgsl
index 5c6438a..ac92129 100644
--- a/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/d0a648.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn dpdyFine_d0a648() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = dpdyFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_d0a648();
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl
index d06f9f9..666a1d7 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn dpdyFine(vec<2, f32>) -> vec<2, f32>
 fn dpdyFine_df33aa() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = dpdyFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_df33aa();
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.dxc.hlsl
index ad54dfb..df85e35 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyFine_df33aa() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.fxc.hlsl
index ad54dfb..df85e35 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 dpdyFine_df33aa() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ddy_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(dpdyFine_df33aa()));
   return;
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.glsl
index d8e7b65..09d86ac 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 dpdyFine_df33aa() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = dFdy(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = dpdyFine_df33aa();
 }
diff --git a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.wgsl
index def7b8f..6c2dcc2 100644
--- a/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/dpdyFine/df33aa.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn dpdyFine_df33aa() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = dpdyFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = dpdyFine_df33aa();
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl
index 8459784..a742ad9 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn exp(vec<4, f32>) -> vec<4, f32>
 fn exp_0f70eb() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_0f70eb();
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.dxc.hlsl
index b21a85e..358612a 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp_0f70eb() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp_0f70eb()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.fxc.hlsl
index b21a85e..358612a 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp_0f70eb() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp_0f70eb()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.glsl
index f2a7f0b..5000f23 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp_0f70eb() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp_0f70eb() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.wgsl
index 664dc46..a0bd2e3 100644
--- a/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/0f70eb.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn exp_0f70eb() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_0f70eb();
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl b/test/tint/builtins/gen/var/exp/13806d.wgsl
index 9dd32ad..18bf567 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn exp(vec<3, f16>) -> vec<3, f16>
 fn exp_13806d() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_13806d();
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.dxc.hlsl
index fc79d7d..d53e39b 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> exp_13806d() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, exp_13806d());
   return;
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.glsl
index dfe2a3d..7b85075 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp_13806d() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp_13806d() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.wgsl
index 284cfc2..9fd5307 100644
--- a/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/13806d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn exp_13806d() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_13806d();
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl
index 05974b2..597775c51 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn exp(vec<2, f32>) -> vec<2, f32>
 fn exp_1951e7() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_1951e7();
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.dxc.hlsl
index 662cc42..437157d 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp_1951e7() {
   float2 arg_0 = (1.0f).xx;
   float2 res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp_1951e7()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.fxc.hlsl
index 662cc42..437157d 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp_1951e7() {
   float2 arg_0 = (1.0f).xx;
   float2 res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp_1951e7()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.glsl
index 9d70e55..a6a869d 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp_1951e7() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp_1951e7() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.wgsl
index 0d33f99..8a8da27 100644
--- a/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/1951e7.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn exp_1951e7() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_1951e7();
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl
index 9d128ff..a54b4a5 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn exp(vec<2, f16>) -> vec<2, f16>
 fn exp_2e08e2() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_2e08e2();
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.dxc.hlsl
index e2f8fe2..070783b 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> exp_2e08e2() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, exp_2e08e2());
   return;
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.glsl
index ad47bfa..c3f2c88 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp_2e08e2() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp_2e08e2() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.wgsl
index 2435268..fe1202e 100644
--- a/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/2e08e2.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn exp_2e08e2() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_2e08e2();
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl b/test/tint/builtins/gen/var/exp/611a87.wgsl
index befa1c6..0dd854c 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn exp(vec<4, f16>) -> vec<4, f16>
 fn exp_611a87() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_611a87();
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.dxc.hlsl
index 6eb81a8..551cbcb 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> exp_611a87() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, exp_611a87());
   return;
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.glsl
index 63cf116..a8601fe 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp_611a87() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp_611a87() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.wgsl
index d5c1fbd..5d7c2e3 100644
--- a/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/611a87.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn exp_611a87() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_611a87();
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl
index 3e55a36..9f14563 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn exp(f32) -> f32
 fn exp_771fd2() -> f32{
   var arg_0 = 1.f;
   var res: f32 = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_771fd2();
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.dxc.hlsl
index b32fe4f..ad74064 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp_771fd2() {
   float arg_0 = 1.0f;
   float res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp_771fd2()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.fxc.hlsl
index b32fe4f..ad74064 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp_771fd2() {
   float arg_0 = 1.0f;
   float res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp_771fd2()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.glsl
index 803e1ed..1b6da8b 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp_771fd2() {
   float arg_0 = 1.0f;
   float res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp_771fd2() {
   float arg_0 = 1.0f;
   float res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.wgsl
index 40f81f2..ad0f4cd 100644
--- a/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/771fd2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn exp_771fd2() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_771fd2();
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl
index 5f8d3e7..84c51de 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn exp(f16) -> f16
 fn exp_c18fe9() -> f16{
   var arg_0 = 1.h;
   var res: f16 = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_c18fe9();
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.dxc.hlsl
index c913694..dbacfd2 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t exp_c18fe9() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, exp_c18fe9());
   return;
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.glsl
index a25e493..d866b89 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp_c18fe9() {
   float16_t arg_0 = 1.0hf;
   float16_t res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp_c18fe9() {
   float16_t arg_0 = 1.0hf;
   float16_t res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.wgsl
index 1f5d95e..2f63ce4 100644
--- a/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/c18fe9.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn exp_c18fe9() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_c18fe9();
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl b/test/tint/builtins/gen/var/exp/d98450.wgsl
index 2b62fbb..7fe340e 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn exp(vec<3, f32>) -> vec<3, f32>
 fn exp_d98450() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = exp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_d98450();
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.dxc.hlsl
index 5e64048..c47ab5e 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp_d98450() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp_d98450()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.fxc.hlsl
index 5e64048..c47ab5e 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp_d98450() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = exp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp_d98450()));
   return;
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.glsl
index 1c95f9f..a4db100 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 exp_d98450() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 exp_d98450() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = exp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.wgsl
index 91b033a..47219c0 100644
--- a/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp/d98450.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn exp_d98450() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = exp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp_d98450();
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl
index 4ee5dab..64e95e5 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn exp2(vec<2, f16>) -> vec<2, f16>
 fn exp2_151a4c() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_151a4c();
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.dxc.hlsl
index 37e81ae..fee9cfe 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> exp2_151a4c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, exp2_151a4c());
   return;
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.glsl
index d509979..042bbec 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp2_151a4c() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 exp2_151a4c() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.wgsl
index f00e775..97a6b0a 100644
--- a/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/151a4c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn exp2_151a4c() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_151a4c();
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl
index 52b4b07..e8401a8 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn exp2(vec<3, f32>) -> vec<3, f32>
 fn exp2_1f8680() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_1f8680();
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.dxc.hlsl
index 2f1ab51..dd68cc1 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp2_1f8680() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp2_1f8680()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.fxc.hlsl
index 2f1ab51..dd68cc1 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 exp2_1f8680() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(exp2_1f8680()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.glsl
index 0ed738c..1b310cd 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 exp2_1f8680() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 exp2_1f8680() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.wgsl
index 49131d3..1c1cb14 100644
--- a/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/1f8680.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn exp2_1f8680() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_1f8680();
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl b/test/tint/builtins/gen/var/exp2/751377.wgsl
index 92453f7..1117579 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn exp2(vec<3, f16>) -> vec<3, f16>
 fn exp2_751377() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_751377();
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.dxc.hlsl
index d5fcd10..dd21f9e 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> exp2_751377() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, exp2_751377());
   return;
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.glsl
index 9ce3117..ebd002a 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp2_751377() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 exp2_751377() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.wgsl
index fc271d7..ccc14a3 100644
--- a/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/751377.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn exp2_751377() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_751377();
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl
index 9c6372f..174857a 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn exp2(vec<4, f32>) -> vec<4, f32>
 fn exp2_a9d0a7() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_a9d0a7();
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.dxc.hlsl
index 50a86d0..ab0ee93 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp2_a9d0a7() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.fxc.hlsl
index 50a86d0..ab0ee93 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 exp2_a9d0a7() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(exp2_a9d0a7()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.glsl
index b9b396a..e3ebbb3 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp2_a9d0a7() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 exp2_a9d0a7() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.wgsl
index e668973..e312023 100644
--- a/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/a9d0a7.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn exp2_a9d0a7() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_a9d0a7();
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl
index 7d9b0e6..ddb4cd9 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn exp2(f16) -> f16
 fn exp2_b408e4() -> f16{
   var arg_0 = 1.h;
   var res: f16 = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_b408e4();
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.dxc.hlsl
index 39f6ded..acbc0ca 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t exp2_b408e4() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, exp2_b408e4());
   return;
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.glsl
index c9509af..3ac41bd 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp2_b408e4() {
   float16_t arg_0 = 1.0hf;
   float16_t res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t exp2_b408e4() {
   float16_t arg_0 = 1.0hf;
   float16_t res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.wgsl
index 99d2561..b22bd42 100644
--- a/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/b408e4.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn exp2_b408e4() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_b408e4();
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl
index e2d0f85..41c0523 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn exp2(vec<2, f32>) -> vec<2, f32>
 fn exp2_d6777c() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_d6777c();
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.dxc.hlsl
index acb8726..6d67e34 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp2_d6777c() {
   float2 arg_0 = (1.0f).xx;
   float2 res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp2_d6777c()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.fxc.hlsl
index acb8726..6d67e34 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 exp2_d6777c() {
   float2 arg_0 = (1.0f).xx;
   float2 res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(exp2_d6777c()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.glsl
index eebae9e..939e1fa 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp2_d6777c() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 exp2_d6777c() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.wgsl
index 2a7ce8c..3ce84f2 100644
--- a/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/d6777c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn exp2_d6777c() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_d6777c();
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl
index c70c5aa..6cd2227 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn exp2(f32) -> f32
 fn exp2_dea523() -> f32{
   var arg_0 = 1.f;
   var res: f32 = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_dea523();
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.dxc.hlsl
index 82bc656..7974200 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp2_dea523() {
   float arg_0 = 1.0f;
   float res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp2_dea523()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.fxc.hlsl
index 82bc656..7974200 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float exp2_dea523() {
   float arg_0 = 1.0f;
   float res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(exp2_dea523()));
   return;
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.glsl
index a2a7198..5429e73 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp2_dea523() {
   float arg_0 = 1.0f;
   float res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float exp2_dea523() {
   float arg_0 = 1.0f;
   float res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.wgsl
index 184dc3c..1c25768 100644
--- a/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/dea523.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn exp2_dea523() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_dea523();
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl
index 17c3ba0..102d6c1 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn exp2(vec<4, f16>) -> vec<4, f16>
 fn exp2_ffa827() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = exp2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_ffa827();
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.dxc.hlsl
index 76a375c..1a10adf 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> exp2_ffa827() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = exp2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, exp2_ffa827());
   return;
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.glsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.glsl
index 725e3ec..ce1e16c 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp2_ffa827() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 exp2_ffa827() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = exp2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.wgsl b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.wgsl
index 9b5b2ef..aef177d 100644
--- a/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/exp2/ffa827.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn exp2_ffa827() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = exp2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = exp2_ffa827();
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl
index 135fb0f..815e903 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn extractBits(vec<3, u32>, u32, u32) -> vec<3, u32>
 fn extractBits_12b197() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec3<u32> = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_12b197();
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.dxc.hlsl
index 24457de..2b797c6 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint3((shr).xxx)) : ((shl_result >> (31u).xxx) >> (1u).xxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 extractBits_12b197() {
   uint3 arg_0 = (1u).xxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_12b197()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.fxc.hlsl
index 24457de..2b797c6 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint3((shr).xxx)) : ((shl_result >> (31u).xxx) >> (1u).xxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 extractBits_12b197() {
   uint3 arg_0 = (1u).xxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_12b197()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.glsl
index 22ccd32..545d8bf 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.glsl
@@ -8,6 +8,11 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 extractBits_12b197() {
   uvec3 arg_0 = uvec3(1u);
   uint arg_1 = 1u;
@@ -16,11 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -42,6 +42,11 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 extractBits_12b197() {
   uvec3 arg_0 = uvec3(1u);
   uint arg_1 = 1u;
@@ -50,11 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.wgsl
index 3a6baa7..3855a84 100644
--- a/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/12b197.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn extractBits_12b197() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_12b197();
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl
index 9fd1575..ae83bc6 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn extractBits(i32, u32, u32) -> i32
 fn extractBits_249874() -> i32{
   var arg_0 = 1i;
@@ -43,8 +46,6 @@
   var res: i32 = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_249874();
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.dxc.hlsl
index 2ddf8a0..90377d2 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> shr) : ((shl_result >> 31u) >> 1u));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int extractBits_249874() {
   int arg_0 = 1;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_249874()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.fxc.hlsl
index 2ddf8a0..90377d2 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> shr) : ((shl_result >> 31u) >> 1u));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int extractBits_249874() {
   int arg_0 = 1;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_249874()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.glsl
index 8b5686b..b924f3f 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int extractBits_249874() {
   int arg_0 = 1;
   uint arg_1 = 1u;
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -41,6 +41,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int extractBits_249874() {
   int arg_0 = 1;
   uint arg_1 = 1u;
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.wgsl
index f5917ad..7328a3f 100644
--- a/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/249874.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn extractBits_249874() -> i32 {
   var arg_0 = 1i;
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_249874();
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl
index 5a0313c..8e70c60 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn extractBits(vec<4, u32>, u32, u32) -> vec<4, u32>
 fn extractBits_631377() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec4<u32> = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_631377();
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.dxc.hlsl
index ea64ea0..25a21ca 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint4((shr).xxxx)) : ((shl_result >> (31u).xxxx) >> (1u).xxxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 extractBits_631377() {
   uint4 arg_0 = (1u).xxxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_631377()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.fxc.hlsl
index ea64ea0..25a21ca 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint4((shr).xxxx)) : ((shl_result >> (31u).xxxx) >> (1u).xxxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 extractBits_631377() {
   uint4 arg_0 = (1u).xxxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_631377()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.glsl
index 4c273aa..42dc3e6 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 extractBits_631377() {
   uvec4 arg_0 = uvec4(1u);
   uint arg_1 = 1u;
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -41,6 +41,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 extractBits_631377() {
   uvec4 arg_0 = uvec4(1u);
   uint arg_1 = 1u;
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.wgsl
index 1ee218f..0e1f9bb 100644
--- a/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/631377.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn extractBits_631377() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_631377();
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl
index 01200fa..4b110f2 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn extractBits(vec<2, i32>, u32, u32) -> vec<2, i32>
 fn extractBits_a99a8d() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec2<i32> = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_a99a8d();
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.dxc.hlsl
index bd27183..9ccbf2e 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint2((shr).xx)) : ((shl_result >> (31u).xx) >> (1u).xx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 extractBits_a99a8d() {
   int2 arg_0 = (1).xx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.fxc.hlsl
index bd27183..9ccbf2e 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint2((shr).xx)) : ((shl_result >> (31u).xx) >> (1u).xx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 extractBits_a99a8d() {
   int2 arg_0 = (1).xx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_a99a8d()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.glsl
index 50fe674..deed181 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 extractBits_a99a8d() {
   ivec2 arg_0 = ivec2(1);
   uint arg_1 = 1u;
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -41,6 +41,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 extractBits_a99a8d() {
   ivec2 arg_0 = ivec2(1);
   uint arg_1 = 1u;
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.wgsl
index bc586c7..2701f0e 100644
--- a/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/a99a8d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn extractBits_a99a8d() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_a99a8d();
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl
index c2efb73..c845eeb 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn extractBits(u32, u32, u32) -> u32
 fn extractBits_ce81f8() -> u32{
   var arg_0 = 1u;
@@ -43,8 +46,6 @@
   var res: u32 = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_ce81f8();
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.dxc.hlsl
index 5df451c..d91f42c 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> shr) : ((shl_result >> 31u) >> 1u));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint extractBits_ce81f8() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_ce81f8()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.fxc.hlsl
index 5df451c..d91f42c 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> shr) : ((shl_result >> 31u) >> 1u));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint extractBits_ce81f8() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(extractBits_ce81f8()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.glsl
index ceedfff..1c6c808 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint extractBits_ce81f8() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -41,6 +41,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint extractBits_ce81f8() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.wgsl
index 369210e..51d0a7f 100644
--- a/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/ce81f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn extractBits_ce81f8() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_ce81f8();
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl
index 84d04b7..4ab2b1e 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn extractBits(vec<3, i32>, u32, u32) -> vec<3, i32>
 fn extractBits_e04f5d() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec3<i32> = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_e04f5d();
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.dxc.hlsl
index 8a8ab98..35d81cf 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint3((shr).xxx)) : ((shl_result >> (31u).xxx) >> (1u).xxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 extractBits_e04f5d() {
   int3 arg_0 = (1).xxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.fxc.hlsl
index 8a8ab98..35d81cf 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint3((shr).xxx)) : ((shl_result >> (31u).xxx) >> (1u).xxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 extractBits_e04f5d() {
   int3 arg_0 = (1).xxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(extractBits_e04f5d()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.glsl
index 88428b4..221c227 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.glsl
@@ -8,6 +8,11 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 extractBits_e04f5d() {
   ivec3 arg_0 = ivec3(1);
   uint arg_1 = 1u;
@@ -16,11 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -42,6 +42,11 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 extractBits_e04f5d() {
   ivec3 arg_0 = ivec3(1);
   uint arg_1 = 1u;
@@ -50,11 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.wgsl
index 5d51e96..5c98b6e 100644
--- a/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/e04f5d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn extractBits_e04f5d() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_e04f5d();
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl
index 88aa071..9a1f70e 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn extractBits(vec<2, u32>, u32, u32) -> vec<2, u32>
 fn extractBits_f28f69() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec2<u32> = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_f28f69();
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.dxc.hlsl
index 41f6284..0254374 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint2((shr).xx)) : ((shl_result >> (31u).xx) >> (1u).xx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 extractBits_f28f69() {
   uint2 arg_0 = (1u).xx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_f28f69()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.fxc.hlsl
index 41f6284..0254374 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint2((shr).xx)) : ((shl_result >> (31u).xx) >> (1u).xx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 extractBits_f28f69() {
   uint2 arg_0 = (1u).xx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(extractBits_f28f69()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.glsl
index 07e33ca..5a8a35d 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 extractBits_f28f69() {
   uvec2 arg_0 = uvec2(1u);
   uint arg_1 = 1u;
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -41,6 +41,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 extractBits_f28f69() {
   uvec2 arg_0 = uvec2(1u);
   uint arg_1 = 1u;
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.wgsl
index ba609c3..9b0f1dc 100644
--- a/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/f28f69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn extractBits_f28f69() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_f28f69();
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl
index 9109b73..73ec6d7 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn extractBits(vec<4, i32>, u32, u32) -> vec<4, i32>
 fn extractBits_fb850f() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec4<i32> = extractBits(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_fb850f();
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.dxc.hlsl
index 3f18dfa..e6635dc1 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.dxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint4((shr).xxxx)) : ((shl_result >> (31u).xxxx) >> (1u).xxxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 extractBits_fb850f() {
   int4 arg_0 = (1).xxxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.fxc.hlsl
index 3f18dfa..e6635dc1 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.fxc.hlsl
@@ -7,6 +7,8 @@
   return ((shr < 32u) ? (shl_result >> uint4((shr).xxxx)) : ((shl_result >> (31u).xxxx) >> (1u).xxxx));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 extractBits_fb850f() {
   int4 arg_0 = (1).xxxx;
   uint arg_1 = 1u;
@@ -15,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(extractBits_fb850f()));
   return;
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.glsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.glsl
index 2f9058f..0f9ece9 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 extractBits_fb850f() {
   ivec4 arg_0 = ivec4(1);
   uint arg_1 = 1u;
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -41,6 +41,10 @@
   return bitfieldExtract(v, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 extractBits_fb850f() {
   ivec4 arg_0 = ivec4(1);
   uint arg_1 = 1u;
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.wgsl
index 507be4a..2adad1d 100644
--- a/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/extractBits/fb850f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn extractBits_fb850f() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = extractBits_fb850f();
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl
index eda2f08..8dafa8f 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn faceForward(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn faceForward_524986() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = faceForward(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_524986();
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.dxc.hlsl
index 060f4ae..dc79dc0 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> faceForward_524986() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, faceForward_524986());
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.glsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.glsl
index 145db32..4363093 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 faceForward_524986() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 faceForward_524986() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.wgsl b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.wgsl
index 47d1602..7979c3a 100644
--- a/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/524986.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn faceForward_524986() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_524986();
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl
index 402dd20..96a0406 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn faceForward(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn faceForward_5afbd5() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = faceForward(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_5afbd5();
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.dxc.hlsl
index dbef0a9..1feacdc 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 faceForward_5afbd5() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.fxc.hlsl
index dbef0a9..1feacdc 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 faceForward_5afbd5() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(faceForward_5afbd5()));
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.glsl
index a7913f5..6793820 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 faceForward_5afbd5() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 faceForward_5afbd5() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.wgsl
index 51af4bc..ef57cf3 100644
--- a/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/5afbd5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn faceForward_5afbd5() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_5afbd5();
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl
index 8617748..af42413 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn faceForward(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn faceForward_b316e5() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = faceForward(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_b316e5();
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.dxc.hlsl
index 1e3e4fd..a89fd4a 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 faceForward_b316e5() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.fxc.hlsl
index 1e3e4fd..a89fd4a 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 faceForward_b316e5() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(faceForward_b316e5()));
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.glsl
index a803ddb..217491b 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 faceForward_b316e5() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 faceForward_b316e5() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.wgsl
index 2675452..fa71902 100644
--- a/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/b316e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn faceForward_b316e5() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_b316e5();
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl
index 2cc1479..147a660 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn faceForward(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn faceForward_cc63dc() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = faceForward(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_cc63dc();
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.dxc.hlsl
index b1de613..7d1011a 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> faceForward_cc63dc() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, faceForward_cc63dc());
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.glsl
index 4e7e657..5959a73 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 faceForward_cc63dc() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 faceForward_cc63dc() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.wgsl
index 952002a..c72f887 100644
--- a/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/cc63dc.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn faceForward_cc63dc() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_cc63dc();
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl
index 1124cd2..4697a24 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn faceForward(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn faceForward_e6908b() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = faceForward(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_e6908b();
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.dxc.hlsl
index 8a3067b..a4b3d4d 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 faceForward_e6908b() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.fxc.hlsl
index 8a3067b..a4b3d4d 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 faceForward_e6908b() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(faceForward_e6908b()));
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.glsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.glsl
index 48dfbaf..2a37a4c 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 faceForward_e6908b() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 faceForward_e6908b() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.wgsl
index 37638fb..0cc85ac 100644
--- a/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/e6908b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn faceForward_e6908b() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_e6908b();
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl
index c1f8a30..c042c4a 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn faceForward(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn faceForward_fb0f2e() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = faceForward(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_fb0f2e();
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.dxc.hlsl
index 599ed0a..828f759 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> faceForward_fb0f2e() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, faceForward_fb0f2e());
   return;
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.glsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.glsl
index 0fd2a05..b3542e3 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 faceForward_fb0f2e() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 faceForward_fb0f2e() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.wgsl
index 49a72f1..f67b993 100644
--- a/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/faceForward/fb0f2e.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn faceForward_fb0f2e() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = faceForward_fb0f2e();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl
index cc81943..0d0faea 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn firstLeadingBit(vec<4, u32>) -> vec<4, u32>
 fn firstLeadingBit_000ff3() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_000ff3();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl
index 1f97f1e..8545eb7 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstLeadingBit_000ff3() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_000ff3()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl
index 1f97f1e..8545eb7 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstLeadingBit_000ff3() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_000ff3()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.glsl
index 9f2cffd..708ba02 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstLeadingBit_000ff3() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstLeadingBit_000ff3() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.wgsl
index b15e5df..7053291 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/000ff3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn firstLeadingBit_000ff3() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_000ff3();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl
index 3d5a1b5..9c287c4 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn firstLeadingBit(vec<3, i32>) -> vec<3, i32>
 fn firstLeadingBit_35053e() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_35053e();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl
index 5fcb929..12c98fd 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstLeadingBit_35053e() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl
index 5fcb929..12c98fd 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstLeadingBit_35053e() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_35053e()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.glsl
index e8faaae..bc26919 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 firstLeadingBit_35053e() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -68,17 +68,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 firstLeadingBit_35053e() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.wgsl
index 1236bae..edaf4ff 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/35053e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn firstLeadingBit_35053e() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_35053e();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl
index ac1763c..7b8872a 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn firstLeadingBit(vec<3, u32>) -> vec<3, u32>
 fn firstLeadingBit_3fd7d0() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_3fd7d0();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl
index 517c66e..20aa9c5 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstLeadingBit_3fd7d0() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_3fd7d0()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl
index 517c66e..20aa9c5 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstLeadingBit_3fd7d0() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstLeadingBit_3fd7d0()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.glsl
index 1f21bda..b2a8e2c 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 firstLeadingBit_3fd7d0() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -68,17 +68,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 firstLeadingBit_3fd7d0() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
index cf37481..7082623 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/3fd7d0.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn firstLeadingBit_3fd7d0() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_3fd7d0();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl
index 76c5838..d5b7b3d 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn firstLeadingBit(i32) -> i32
 fn firstLeadingBit_57a1a3() -> i32{
   var arg_0 = 1i;
   var res: i32 = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_57a1a3();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl
index d6e103e..5b5d120 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstLeadingBit_57a1a3() {
   int arg_0 = 1;
   int res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl
index d6e103e..5b5d120 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstLeadingBit_57a1a3() {
   int arg_0 = 1;
   int res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_57a1a3()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.glsl
index b73232f..0f06b26 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstLeadingBit_57a1a3() {
   int arg_0 = 1;
   int res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -57,16 +57,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstLeadingBit_57a1a3() {
   int arg_0 = 1;
   int res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.wgsl
index 8b138dd..274ba46 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/57a1a3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn firstLeadingBit_57a1a3() -> i32 {
   var arg_0 = 1i;
   var res : i32 = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_57a1a3();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl
index a7ea621..3aa913a 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn firstLeadingBit(vec<2, u32>) -> vec<2, u32>
 fn firstLeadingBit_6fe804() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_6fe804();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl
index a68001c..a952ae0 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstLeadingBit_6fe804() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_6fe804()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl
index a68001c..a952ae0 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstLeadingBit_6fe804() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_6fe804()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.glsl
index 11d5e40..2b257ab 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstLeadingBit_6fe804() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstLeadingBit_6fe804() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.wgsl
index f9e9e3a..83f3341 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/6fe804.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn firstLeadingBit_6fe804() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_6fe804();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl
index 16286b2..86cae61 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn firstLeadingBit(vec<2, i32>) -> vec<2, i32>
 fn firstLeadingBit_a622c2() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_a622c2();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl
index 7fe16de..a948181 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstLeadingBit_a622c2() {
   int2 arg_0 = (1).xx;
   int2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl
index 7fe16de..a948181 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstLeadingBit_a622c2() {
   int2 arg_0 = (1).xx;
   int2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstLeadingBit_a622c2()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.glsl
index a319f58..713d464 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstLeadingBit_a622c2() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstLeadingBit_a622c2() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.wgsl
index 2150f47..17727f3 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/a622c2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn firstLeadingBit_a622c2() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_a622c2();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl
index aeb2061..4692737 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn firstLeadingBit(vec<4, i32>) -> vec<4, i32>
 fn firstLeadingBit_c1f940() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_c1f940();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl
index f0597e4..d5f9cac 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstLeadingBit_c1f940() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl
index f0597e4..d5f9cac 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstLeadingBit_c1f940() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstLeadingBit_c1f940()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.glsl
index 7f0e663..ff0ec74 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstLeadingBit_c1f940() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstLeadingBit_c1f940() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.wgsl
index bbeaa34..fb093c3 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/c1f940.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn firstLeadingBit_c1f940() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_c1f940();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl
index 8cb632d..1613f52 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn firstLeadingBit(u32) -> u32
 fn firstLeadingBit_f0779d() -> u32{
   var arg_0 = 1u;
   var res: u32 = firstLeadingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_f0779d();
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl
index 466439b..0becf2e 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstLeadingBit_f0779d() {
   uint arg_0 = 1u;
   uint res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_f0779d()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl
index 466439b..0becf2e 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstLeadingBit_f0779d() {
   uint arg_0 = 1u;
   uint res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstLeadingBit_f0779d()));
   return;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.glsl
index c12ee60..ec28f67 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstLeadingBit_f0779d() {
   uint arg_0 = 1u;
   uint res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -57,16 +57,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstLeadingBit_f0779d() {
   uint arg_0 = 1u;
   uint res = tint_first_leading_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.wgsl
index e5aac93..3065bb3 100644
--- a/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstLeadingBit/f0779d.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn firstLeadingBit_f0779d() -> u32 {
   var arg_0 = 1u;
   var res : u32 = firstLeadingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstLeadingBit_f0779d();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl
index 8dedda7..2714084 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn firstTrailingBit(vec<4, u32>) -> vec<4, u32>
 fn firstTrailingBit_110f2c() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_110f2c();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl
index affaa35..d5218aa 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstTrailingBit_110f2c() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_110f2c()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl
index affaa35..d5218aa 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 firstTrailingBit_110f2c() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_110f2c()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.glsl
index 21fd715..0633252 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstTrailingBit_110f2c() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 firstTrailingBit_110f2c() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.wgsl
index f46ae8e..9ee3b05 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/110f2c.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn firstTrailingBit_110f2c() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_110f2c();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl
index 159dd19..8746173 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn firstTrailingBit(i32) -> i32
 fn firstTrailingBit_3a2acc() -> i32{
   var arg_0 = 1i;
   var res: i32 = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_3a2acc();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl
index 1256440..6b31e54 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstTrailingBit_3a2acc() {
   int arg_0 = 1;
   int res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl
index 1256440..6b31e54 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int firstTrailingBit_3a2acc() {
   int arg_0 = 1;
   int res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_3a2acc()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.glsl
index e49d43b..ad1f80f 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstTrailingBit_3a2acc() {
   int arg_0 = 1;
   int res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -57,16 +57,16 @@
   return int((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int firstTrailingBit_3a2acc() {
   int arg_0 = 1;
   int res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.wgsl
index b9b21bd..8b857e0 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/3a2acc.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn firstTrailingBit_3a2acc() -> i32 {
   var arg_0 = 1i;
   var res : i32 = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_3a2acc();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl
index 0250fd1..deb44cc 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn firstTrailingBit(vec<2, u32>) -> vec<2, u32>
 fn firstTrailingBit_45eb10() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_45eb10();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl
index ee2d435..ac94509 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstTrailingBit_45eb10() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_45eb10()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl
index ee2d435..ac94509 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 firstTrailingBit_45eb10() {
   uint2 arg_0 = (1u).xx;
   uint2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_45eb10()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.glsl
index 282522a..032ae87 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstTrailingBit_45eb10() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -67,16 +67,16 @@
   return uvec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 firstTrailingBit_45eb10() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.wgsl
index 3f35041..1b14eb3 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/45eb10.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn firstTrailingBit_45eb10() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_45eb10();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl
index 74814f7..8eedca4 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn firstTrailingBit(u32) -> u32
 fn firstTrailingBit_47d475() -> u32{
   var arg_0 = 1u;
   var res: u32 = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_47d475();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl
index 8d1a694..eebe705 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstTrailingBit_47d475() {
   uint arg_0 = 1u;
   uint res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_47d475()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl
index 8d1a694..eebe705 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint firstTrailingBit_47d475() {
   uint arg_0 = 1u;
   uint res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(firstTrailingBit_47d475()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.glsl
index 28b5e82..5a51cc3 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.glsl
@@ -17,16 +17,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstTrailingBit_47d475() {
   uint arg_0 = 1u;
   uint res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -57,16 +57,16 @@
   return uint((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint firstTrailingBit_47d475() {
   uint arg_0 = 1u;
   uint res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.wgsl
index 0aadeaa..f0c9785 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/47d475.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn firstTrailingBit_47d475() -> u32 {
   var arg_0 = 1u;
   var res : u32 = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_47d475();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl
index ff9002d..e6f5b37 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn firstTrailingBit(vec<2, i32>) -> vec<2, i32>
 fn firstTrailingBit_50c072() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_50c072();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl
index 504ce2e..228a92d 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstTrailingBit_50c072() {
   int2 arg_0 = (1).xx;
   int2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl
index 504ce2e..228a92d 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 firstTrailingBit_50c072() {
   int2 arg_0 = (1).xx;
   int2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(firstTrailingBit_50c072()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.glsl
index 5025ca9..620bb9c 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstTrailingBit_50c072() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec2((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 firstTrailingBit_50c072() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.wgsl
index 009e33ff..5fd1626 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/50c072.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn firstTrailingBit_50c072() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_50c072();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl
index 1765ea2..d9b4446 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn firstTrailingBit(vec<3, i32>) -> vec<3, i32>
 fn firstTrailingBit_7496d6() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_7496d6();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl
index e0a43ed..6f183b3 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstTrailingBit_7496d6() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl
index e0a43ed..6f183b3 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 firstTrailingBit_7496d6() {
   int3 arg_0 = (1).xxx;
   int3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_7496d6()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.glsl
index 9b4f50c..230a913 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 firstTrailingBit_7496d6() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -68,17 +68,17 @@
   return ivec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 firstTrailingBit_7496d6() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.wgsl
index ab04f6c..c517270 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/7496d6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn firstTrailingBit_7496d6() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_7496d6();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl
index d886822..e5236c7 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn firstTrailingBit(vec<4, i32>) -> vec<4, i32>
 fn firstTrailingBit_86551b() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_86551b();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl
index a1515fc..e3df0c2 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstTrailingBit_86551b() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl
index a1515fc..e3df0c2 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return int4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 firstTrailingBit_86551b() {
   int4 arg_0 = (1).xxxx;
   int4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(firstTrailingBit_86551b()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.glsl
index aacc922..4ae8342 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.glsl
@@ -22,16 +22,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstTrailingBit_86551b() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -67,16 +67,16 @@
   return ivec4((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 firstTrailingBit_86551b() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.wgsl
index 1c5f38b..4175afe 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/86551b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn firstTrailingBit_86551b() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_86551b();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl
index 48432dc..ee4043d 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn firstTrailingBit(vec<3, u32>) -> vec<3, u32>
 fn firstTrailingBit_cb51ce() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = firstTrailingBit(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_cb51ce();
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl
index 9935071..4a8a9c2 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.dxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstTrailingBit_cb51ce() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_cb51ce()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl
index 9935071..4a8a9c2 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.fxc.hlsl
@@ -13,14 +13,14 @@
   return uint3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 firstTrailingBit_cb51ce() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(firstTrailingBit_cb51ce()));
   return;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.glsl
index 259aa09..bb07da5 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.glsl
@@ -22,17 +22,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 firstTrailingBit_cb51ce() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -68,17 +68,17 @@
   return uvec3((((((b16 | b8) | b4) | b2) | b1) | is_zero));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 firstTrailingBit_cb51ce() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = tint_first_trailing_bit(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.wgsl
index 2b06e9c..7d0fa23 100644
--- a/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/firstTrailingBit/cb51ce.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn firstTrailingBit_cb51ce() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = firstTrailingBit(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = firstTrailingBit_cb51ce();
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl
index 3fa0e2f..2c9a0ed 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn floor(vec<3, f16>) -> vec<3, f16>
 fn floor_3802c0() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.5h);
   var res: vec3<f16> = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3802c0();
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.dxc.hlsl
index 4ea7433..287738b 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> floor_3802c0() {
   vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
   vector<float16_t, 3> res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, floor_3802c0());
   return;
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.glsl
index d280fc8..f01737f 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 floor_3802c0() {
   f16vec3 arg_0 = f16vec3(1.5hf);
   f16vec3 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 floor_3802c0() {
   f16vec3 arg_0 = f16vec3(1.5hf);
   f16vec3 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.wgsl
index cbf1839..557a294 100644
--- a/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/3802c0.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn floor_3802c0() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.5h);
   var res : vec3<f16> = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3802c0();
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl
index 480651e..24a7fe0 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn floor(vec<4, f32>) -> vec<4, f32>
 fn floor_3bccc4() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.5f);
   var res: vec4<f32> = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3bccc4();
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.dxc.hlsl
index fc157b3..6f347e4 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 floor_3bccc4() {
   float4 arg_0 = (1.5f).xxxx;
   float4 res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(floor_3bccc4()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.fxc.hlsl
index fc157b3..6f347e4 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 floor_3bccc4() {
   float4 arg_0 = (1.5f).xxxx;
   float4 res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(floor_3bccc4()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.glsl
index 498f84e..c951bf4 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 floor_3bccc4() {
   vec4 arg_0 = vec4(1.5f);
   vec4 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 floor_3bccc4() {
   vec4 arg_0 = vec4(1.5f);
   vec4 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.wgsl
index 5e26e6b..839f3e7 100644
--- a/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/3bccc4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn floor_3bccc4() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.5f);
   var res : vec4<f32> = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_3bccc4();
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl
index 509f15f..76d3d7f 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn floor(vec<2, f32>) -> vec<2, f32>
 fn floor_5fc9ac() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.5f);
   var res: vec2<f32> = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_5fc9ac();
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.dxc.hlsl
index 293a995..87b5b78 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 floor_5fc9ac() {
   float2 arg_0 = (1.5f).xx;
   float2 res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.fxc.hlsl
index 293a995..87b5b78 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 floor_5fc9ac() {
   float2 arg_0 = (1.5f).xx;
   float2 res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(floor_5fc9ac()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.glsl
index 06a5f5e..0ab2f3c 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 floor_5fc9ac() {
   vec2 arg_0 = vec2(1.5f);
   vec2 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 floor_5fc9ac() {
   vec2 arg_0 = vec2(1.5f);
   vec2 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.wgsl
index 1f38a6d..f88ae37 100644
--- a/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/5fc9ac.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn floor_5fc9ac() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.5f);
   var res : vec2<f32> = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_5fc9ac();
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl
index ba7c79a..a39c887 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn floor(vec<3, f32>) -> vec<3, f32>
 fn floor_60d7ea() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.5f);
   var res: vec3<f32> = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_60d7ea();
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.dxc.hlsl
index fd90a14..4d0c2ec 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 floor_60d7ea() {
   float3 arg_0 = (1.5f).xxx;
   float3 res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(floor_60d7ea()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.fxc.hlsl
index fd90a14..4d0c2ec 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 floor_60d7ea() {
   float3 arg_0 = (1.5f).xxx;
   float3 res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(floor_60d7ea()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.glsl
index 92b8da5..fcef514 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 floor_60d7ea() {
   vec3 arg_0 = vec3(1.5f);
   vec3 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 floor_60d7ea() {
   vec3 arg_0 = vec3(1.5f);
   vec3 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.wgsl
index 2124d3f..36dc635 100644
--- a/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/60d7ea.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn floor_60d7ea() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.5f);
   var res : vec3<f32> = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_60d7ea();
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl b/test/tint/builtins/gen/var/floor/66f154.wgsl
index 2d38916..657c4db 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn floor(f32) -> f32
 fn floor_66f154() -> f32{
   var arg_0 = 1.5f;
   var res: f32 = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_66f154();
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.dxc.hlsl
index d42e7ed..72c6671 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float floor_66f154() {
   float arg_0 = 1.5f;
   float res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(floor_66f154()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.fxc.hlsl
index d42e7ed..72c6671 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float floor_66f154() {
   float arg_0 = 1.5f;
   float res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(floor_66f154()));
   return;
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.glsl
index 957fac8..e02f74e 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float floor_66f154() {
   float arg_0 = 1.5f;
   float res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float floor_66f154() {
   float arg_0 = 1.5f;
   float res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.wgsl
index ee20c7f..810ba19 100644
--- a/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/66f154.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn floor_66f154() -> f32 {
   var arg_0 = 1.5f;
   var res : f32 = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_66f154();
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl b/test/tint/builtins/gen/var/floor/84658c.wgsl
index a9352bc..ed9648b 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn floor(vec<2, f16>) -> vec<2, f16>
 fn floor_84658c() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.5h);
   var res: vec2<f16> = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_84658c();
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.dxc.hlsl
index 28fb171..bbbae24 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> floor_84658c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
   vector<float16_t, 2> res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, floor_84658c());
   return;
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.glsl
index 51d2dea..bc424b6 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 floor_84658c() {
   f16vec2 arg_0 = f16vec2(1.5hf);
   f16vec2 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 floor_84658c() {
   f16vec2 arg_0 = f16vec2(1.5hf);
   f16vec2 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.wgsl
index 0b44ae3..66b03c9 100644
--- a/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/84658c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn floor_84658c() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.5h);
   var res : vec2<f16> = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_84658c();
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl
index f7fe4eb..8fb81be 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn floor(vec<4, f16>) -> vec<4, f16>
 fn floor_a2d31b() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.5h);
   var res: vec4<f16> = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_a2d31b();
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.dxc.hlsl
index 91b1915..c2a391d 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> floor_a2d31b() {
   vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
   vector<float16_t, 4> res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, floor_a2d31b());
   return;
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.glsl
index da8729b..f88108a 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 floor_a2d31b() {
   f16vec4 arg_0 = f16vec4(1.5hf);
   f16vec4 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 floor_a2d31b() {
   f16vec4 arg_0 = f16vec4(1.5hf);
   f16vec4 res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.wgsl
index 2cdf014..f3eaca9 100644
--- a/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/a2d31b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn floor_a2d31b() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.5h);
   var res : vec4<f16> = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_a2d31b();
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl
index 18a86fe..6aeb685 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn floor(f16) -> f16
 fn floor_b6e09c() -> f16{
   var arg_0 = 1.5h;
   var res: f16 = floor(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_b6e09c();
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.dxc.hlsl
index c128544..b24b017 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t floor_b6e09c() {
   float16_t arg_0 = float16_t(1.5h);
   float16_t res = floor(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, floor_b6e09c());
   return;
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.glsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.glsl
index 96c31cb..64abf90 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t floor_b6e09c() {
   float16_t arg_0 = 1.5hf;
   float16_t res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t floor_b6e09c() {
   float16_t arg_0 = 1.5hf;
   float16_t res = floor(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.wgsl
index 8f70309..5682a77 100644
--- a/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/floor/b6e09c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn floor_b6e09c() -> f16 {
   var arg_0 = 1.5h;
   var res : f16 = floor(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = floor_b6e09c();
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl
index 8dc7561..7dfa847 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fma(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn fma_26a7a9() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_26a7a9();
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.dxc.hlsl
index d78a151..ccbb420 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fma_26a7a9() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fma_26a7a9()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.fxc.hlsl
index d78a151..ccbb420 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fma_26a7a9() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fma_26a7a9()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.glsl
index f7b96a0..8a2a0d6 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fma_26a7a9() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fma_26a7a9() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.wgsl
index 0abbcf5..c81e1a2 100644
--- a/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/26a7a9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fma_26a7a9() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_26a7a9();
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl
index bdb8cdd..de4c7ea 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fma(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn fma_6a3283() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_6a3283();
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.dxc.hlsl
index efc5aaf..90f2bac 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fma_6a3283() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fma_6a3283()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.fxc.hlsl
index efc5aaf..90f2bac 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fma_6a3283() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fma_6a3283()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.glsl
index 53c5512..2753118 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fma_6a3283() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fma_6a3283() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.wgsl
index c3f567c..73c674b 100644
--- a/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/6a3283.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fma_6a3283() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_6a3283();
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl
index 50ad7f5..6b0d2f3 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn fma(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn fma_ab7818() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_ab7818();
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.dxc.hlsl
index 0b9ac02..2c9e719 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> fma_ab7818() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, fma_ab7818());
   return;
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.glsl
index 51861d9..701dd1a 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fma_ab7818() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fma_ab7818() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.wgsl
index a51783c..3091f31 100644
--- a/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/ab7818.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn fma_ab7818() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_ab7818();
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl
index d9625ca..2406379 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn fma(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn fma_bf21b6() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_bf21b6();
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.dxc.hlsl
index 47fefc1..cf2cb1b 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> fma_bf21b6() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, fma_bf21b6());
   return;
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.glsl
index d598452..73e1e79 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fma_bf21b6() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fma_bf21b6() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.wgsl
index 2828ac6..c4c045f 100644
--- a/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/bf21b6.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn fma_bf21b6() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_bf21b6();
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl
index 72cf8fb..39fa131 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fma(f32, f32, f32) -> f32
 fn fma_c10ba3() -> f32{
   var arg_0 = 1.f;
@@ -43,8 +46,6 @@
   var res: f32 = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c10ba3();
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.dxc.hlsl
index 10887dc..51679e5 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fma_c10ba3() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fma_c10ba3()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.fxc.hlsl
index 10887dc..51679e5 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fma_c10ba3() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fma_c10ba3()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.glsl
index b4dbba0..ddaa4a8 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fma_c10ba3() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fma_c10ba3() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.wgsl
index 77fd1bc..90dced3 100644
--- a/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/c10ba3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fma_c10ba3() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c10ba3();
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl
index e07be0a..53d32b6 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn fma(f16, f16, f16) -> f16
 fn fma_c8abb3() -> f16{
   var arg_0 = 1.h;
@@ -48,8 +51,6 @@
   var res: f16 = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c8abb3();
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.dxc.hlsl
index 713e3ed..c489ea9 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t fma_c8abb3() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, fma_c8abb3());
   return;
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.glsl
index 3438f3c..d91f561 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fma_c8abb3() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fma_c8abb3() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.wgsl
index 33dffa7..5d32ae4 100644
--- a/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/c8abb3.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn fma_c8abb3() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_c8abb3();
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl
index 16902d4..1fe8e04 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fma(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn fma_e17c5c() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e17c5c();
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.dxc.hlsl
index bad389f..f91a133 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fma_e17c5c() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fma_e17c5c()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.fxc.hlsl
index bad389f..f91a133 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fma_e17c5c() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fma_e17c5c()));
   return;
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.glsl
index cd87ba7..c339fb9 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fma_e17c5c() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fma_e17c5c() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.wgsl
index 09d84cb..10988a3 100644
--- a/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/e17c5c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fma_e17c5c() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e17c5c();
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl
index c7409f6..2a33400 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn fma(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn fma_e7abdc() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = fma(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e7abdc();
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.dxc.hlsl
index 2ceba8e..289d353 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> fma_e7abdc() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, fma_e7abdc());
   return;
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.glsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.glsl
index 3501b2a..2fe6444 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fma_e7abdc() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fma_e7abdc() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.wgsl
index 61f90b6..e38a3c8 100644
--- a/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fma/e7abdc.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn fma_e7abdc() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fma_e7abdc();
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl
index c0d31de..f9d8021 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn fract(vec<2, f16>) -> vec<2, f16>
 fn fract_181aa9() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.25h);
   var res: vec2<f16> = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_181aa9();
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.dxc.hlsl
index 1ceb49b..eb18fd7 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> fract_181aa9() {
   vector<float16_t, 2> arg_0 = (float16_t(1.25h)).xx;
   vector<float16_t, 2> res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, fract_181aa9());
   return;
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.glsl
index 64310b2..837f4c4 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fract_181aa9() {
   f16vec2 arg_0 = f16vec2(1.25hf);
   f16vec2 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 fract_181aa9() {
   f16vec2 arg_0 = f16vec2(1.25hf);
   f16vec2 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.wgsl
index da6840e..0361d26 100644
--- a/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/181aa9.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn fract_181aa9() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.25h);
   var res : vec2<f16> = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_181aa9();
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl b/test/tint/builtins/gen/var/fract/498c77.wgsl
index a12fc89..9c078cc 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn fract(vec<4, f16>) -> vec<4, f16>
 fn fract_498c77() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.25h);
   var res: vec4<f16> = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_498c77();
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.dxc.hlsl
index 428c541..5927a8a 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> fract_498c77() {
   vector<float16_t, 4> arg_0 = (float16_t(1.25h)).xxxx;
   vector<float16_t, 4> res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, fract_498c77());
   return;
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.glsl
index 2ce1d0d..3b02c04 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fract_498c77() {
   f16vec4 arg_0 = f16vec4(1.25hf);
   f16vec4 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 fract_498c77() {
   f16vec4 arg_0 = f16vec4(1.25hf);
   f16vec4 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.wgsl
index 533293f..517e0e3 100644
--- a/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/498c77.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn fract_498c77() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.25h);
   var res : vec4<f16> = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_498c77();
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl
index f35c438..f402ff0 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fract(vec<4, f32>) -> vec<4, f32>
 fn fract_8bc1e9() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.25f);
   var res: vec4<f32> = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_8bc1e9();
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.dxc.hlsl
index 532944b..22c5b80 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fract_8bc1e9() {
   float4 arg_0 = (1.25f).xxxx;
   float4 res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.fxc.hlsl
index 532944b..22c5b80 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fract_8bc1e9() {
   float4 arg_0 = (1.25f).xxxx;
   float4 res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fract_8bc1e9()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.glsl
index 3a65734..7e44c02 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fract_8bc1e9() {
   vec4 arg_0 = vec4(1.25f);
   vec4 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fract_8bc1e9() {
   vec4 arg_0 = vec4(1.25f);
   vec4 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.wgsl
index d71a476..edea247 100644
--- a/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/8bc1e9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fract_8bc1e9() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.25f);
   var res : vec4<f32> = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_8bc1e9();
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl
index df576ae..eaa5d78 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fract(vec<2, f32>) -> vec<2, f32>
 fn fract_943cb1() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.25f);
   var res: vec2<f32> = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_943cb1();
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.dxc.hlsl
index 1d30430..307daac 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fract_943cb1() {
   float2 arg_0 = (1.25f).xx;
   float2 res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fract_943cb1()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.fxc.hlsl
index 1d30430..307daac 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fract_943cb1() {
   float2 arg_0 = (1.25f).xx;
   float2 res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fract_943cb1()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.glsl
index e28f80b..3015530 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fract_943cb1() {
   vec2 arg_0 = vec2(1.25f);
   vec2 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fract_943cb1() {
   vec2 arg_0 = vec2(1.25f);
   vec2 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.wgsl
index 826d469..ee972b7 100644
--- a/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/943cb1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fract_943cb1() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.25f);
   var res : vec2<f32> = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_943cb1();
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl
index c3a976b..a02d0e3 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn fract(vec<3, f16>) -> vec<3, f16>
 fn fract_958a1d() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.25h);
   var res: vec3<f16> = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_958a1d();
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.dxc.hlsl
index 0401c3a..11c1501 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> fract_958a1d() {
   vector<float16_t, 3> arg_0 = (float16_t(1.25h)).xxx;
   vector<float16_t, 3> res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, fract_958a1d());
   return;
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.glsl
index 3edc924..d48533c 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fract_958a1d() {
   f16vec3 arg_0 = f16vec3(1.25hf);
   f16vec3 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 fract_958a1d() {
   f16vec3 arg_0 = f16vec3(1.25hf);
   f16vec3 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.wgsl
index 0ba33bb..969d30d 100644
--- a/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/958a1d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn fract_958a1d() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.25h);
   var res : vec3<f16> = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_958a1d();
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl b/test/tint/builtins/gen/var/fract/a49758.wgsl
index f37ca91..09e3244 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fract(vec<3, f32>) -> vec<3, f32>
 fn fract_a49758() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.25f);
   var res: vec3<f32> = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_a49758();
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.dxc.hlsl
index a8ba312..ccb7748 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fract_a49758() {
   float3 arg_0 = (1.25f).xxx;
   float3 res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fract_a49758()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.fxc.hlsl
index a8ba312..ccb7748 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fract_a49758() {
   float3 arg_0 = (1.25f).xxx;
   float3 res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fract_a49758()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.glsl
index 253d682..d6c0063 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fract_a49758() {
   vec3 arg_0 = vec3(1.25f);
   vec3 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fract_a49758() {
   vec3 arg_0 = vec3(1.25f);
   vec3 res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.wgsl
index d293cfb..be29d77 100644
--- a/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/a49758.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fract_a49758() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.25f);
   var res : vec3<f32> = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_a49758();
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl
index e063998..06350a8 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn fract(f16) -> f16
 fn fract_eb38ce() -> f16{
   var arg_0 = 1.25h;
   var res: f16 = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_eb38ce();
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.dxc.hlsl
index 1f2e1da..3b0ac72 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t fract_eb38ce() {
   float16_t arg_0 = float16_t(1.25h);
   float16_t res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, fract_eb38ce());
   return;
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.glsl
index ad94df5..497e3c0 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fract_eb38ce() {
   float16_t arg_0 = 1.25hf;
   float16_t res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t fract_eb38ce() {
   float16_t arg_0 = 1.25hf;
   float16_t res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.wgsl
index 8e14c06..9990b91 100644
--- a/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/eb38ce.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn fract_eb38ce() -> f16 {
   var arg_0 = 1.25h;
   var res : f16 = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_eb38ce();
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl
index 523e385..4e36cad 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fract(f32) -> f32
 fn fract_fa5c71() -> f32{
   var arg_0 = 1.25f;
   var res: f32 = fract(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_fa5c71();
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.dxc.hlsl
index 18339b1..890d51c 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fract_fa5c71() {
   float arg_0 = 1.25f;
   float res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fract_fa5c71()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.fxc.hlsl
index 18339b1..890d51c 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fract_fa5c71() {
   float arg_0 = 1.25f;
   float res = frac(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fract_fa5c71()));
   return;
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.glsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.glsl
index 9bc2bbb..c57903e 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fract_fa5c71() {
   float arg_0 = 1.25f;
   float res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fract_fa5c71() {
   float arg_0 = 1.25f;
   float res = fract(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.wgsl
index 0dd8a0d..5ce4506 100644
--- a/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fract/fa5c71.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fract_fa5c71() -> f32 {
   var arg_0 = 1.25f;
   var res : f32 = fract(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fract_fa5c71();
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl
index 0c5dff8..2b0fb7f 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fwidth(vec<3, f32>) -> vec<3, f32>
 fn fwidth_5d1b39() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = fwidth(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_5d1b39();
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.dxc.hlsl
index 1e84801..c859da8 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidth_5d1b39() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.fxc.hlsl
index 1e84801..c859da8 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidth_5d1b39() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidth_5d1b39()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.glsl
index b6c4d76..625731a 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fwidth_5d1b39() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_5d1b39();
 }
diff --git a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.wgsl
index c134ac1..3ce67ff 100644
--- a/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/5d1b39.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fwidth_5d1b39() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = fwidth(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_5d1b39();
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl
index 3f8def2..580b58c 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fwidth(vec<2, f32>) -> vec<2, f32>
 fn fwidth_b83ebb() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = fwidth(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_b83ebb();
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.dxc.hlsl
index 5e2a67d..742fa3c 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidth_b83ebb() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.fxc.hlsl
index 5e2a67d..742fa3c 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidth_b83ebb() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidth_b83ebb()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.glsl
index d1ff14e..9543144 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fwidth_b83ebb() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_b83ebb();
 }
diff --git a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.wgsl
index 9f15c9d..4fc5081 100644
--- a/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/b83ebb.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fwidth_b83ebb() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = fwidth(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_b83ebb();
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl
index c6e373b..7884740 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fwidth(vec<4, f32>) -> vec<4, f32>
 fn fwidth_d2ab9a() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = fwidth(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_d2ab9a();
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.dxc.hlsl
index a7e74a3..6141aa5 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidth_d2ab9a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.fxc.hlsl
index a7e74a3..6141aa5 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidth_d2ab9a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidth_d2ab9a()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.glsl
index a817184..a0c9f92 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fwidth_d2ab9a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_d2ab9a();
 }
diff --git a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.wgsl
index 4cbe395..f01b3b2 100644
--- a/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/d2ab9a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fwidth_d2ab9a() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = fwidth(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_d2ab9a();
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl
index 48c2e3e..94eb6d6 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fwidth(f32) -> f32
 fn fwidth_df38ef() -> f32{
   var arg_0 = 1.f;
   var res: f32 = fwidth(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_df38ef();
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.dxc.hlsl
index adfb82d..52bf419 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidth_df38ef() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidth_df38ef()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.fxc.hlsl
index adfb82d..52bf419 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidth_df38ef() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidth_df38ef()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.glsl
index 5b72583..d0b6a2b 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fwidth_df38ef() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidth_df38ef();
 }
diff --git a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.wgsl
index 124cf32..fe872e5 100644
--- a/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidth/df38ef.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fwidth_df38ef() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = fwidth(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidth_df38ef();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl
index 8650e0a..c4e9bea 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fwidthCoarse(f32) -> f32
 fn fwidthCoarse_159c8a() -> f32{
   var arg_0 = 1.f;
   var res: f32 = fwidthCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_159c8a();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl
index aafe4d1..9c3975c 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthCoarse_159c8a() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl
index aafe4d1..9c3975c 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthCoarse_159c8a() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthCoarse_159c8a()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.glsl
index 9642a38..9985976 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fwidthCoarse_159c8a() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_159c8a();
 }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.wgsl
index ef65f4b..8ff3be7 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/159c8a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fwidthCoarse_159c8a() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = fwidthCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_159c8a();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl
index 0801492..5595ba4 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fwidthCoarse(vec<3, f32>) -> vec<3, f32>
 fn fwidthCoarse_1e59d9() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = fwidthCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_1e59d9();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl
index 332e584..a3a5001 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthCoarse_1e59d9() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl
index 332e584..a3a5001 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthCoarse_1e59d9() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthCoarse_1e59d9()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.glsl
index e0d98e3..319fb2f 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fwidthCoarse_1e59d9() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_1e59d9();
 }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.wgsl
index 58ae9e7..5720986 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/1e59d9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fwidthCoarse_1e59d9() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = fwidthCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_1e59d9();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl
index a0554d4..00e9e4c 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fwidthCoarse(vec<4, f32>) -> vec<4, f32>
 fn fwidthCoarse_4e4fc4() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = fwidthCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_4e4fc4();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl
index 6fa20f3..14cba08 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthCoarse_4e4fc4() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl
index 6fa20f3..14cba08 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthCoarse_4e4fc4() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthCoarse_4e4fc4()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.glsl
index dddff85..72f0cf5 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fwidthCoarse_4e4fc4() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_4e4fc4();
 }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
index 6020cae..a55ca97 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/4e4fc4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fwidthCoarse_4e4fc4() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = fwidthCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_4e4fc4();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl
index 436ff4e..6d207a1 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fwidthCoarse(vec<2, f32>) -> vec<2, f32>
 fn fwidthCoarse_e653f7() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = fwidthCoarse(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_e653f7();
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl
index 88a9c68..bdad029 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthCoarse_e653f7() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl
index 88a9c68..bdad029 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthCoarse_e653f7() {
   float2 arg_0 = (1.0f).xx;
   float2 res = fwidth(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthCoarse_e653f7()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.glsl
index 1d64b69..acfa691 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fwidthCoarse_e653f7() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthCoarse_e653f7();
 }
diff --git a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.wgsl
index 854cdb9..d2ccc4b 100644
--- a/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthCoarse/e653f7.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fwidthCoarse_e653f7() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = fwidthCoarse(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthCoarse_e653f7();
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl
index d752915..112da9f 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn fwidthFine(vec<3, f32>) -> vec<3, f32>
 fn fwidthFine_523fdc() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = fwidthFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_523fdc();
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.dxc.hlsl
index fe2afc6..d939d3e 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthFine_523fdc() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.fxc.hlsl
index fe2afc6..d939d3e 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 fwidthFine_523fdc() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(fwidthFine_523fdc()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.glsl
index ae56479..8698d0d 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 fwidthFine_523fdc() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_523fdc();
 }
diff --git a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.wgsl
index 7e942ff..151ee0a 100644
--- a/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/523fdc.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn fwidthFine_523fdc() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = fwidthFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_523fdc();
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl
index 1fe8feb..84ece4b 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn fwidthFine(vec<4, f32>) -> vec<4, f32>
 fn fwidthFine_68f4ef() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = fwidthFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_68f4ef();
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl
index 3294908..62ec4dd 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthFine_68f4ef() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl
index 3294908..62ec4dd 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 fwidthFine_68f4ef() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(fwidthFine_68f4ef()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.glsl
index 331c14a..c3348c7 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 fwidthFine_68f4ef() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_68f4ef();
 }
diff --git a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.wgsl
index 06a02b2..a86fb10 100644
--- a/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/68f4ef.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn fwidthFine_68f4ef() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = fwidthFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_68f4ef();
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl
index 079e83c..ddca395 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn fwidthFine(f32) -> f32
 fn fwidthFine_f1742d() -> f32{
   var arg_0 = 1.f;
   var res: f32 = fwidthFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_f1742d();
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.dxc.hlsl
index 0e6ff7e..0ae4b60 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthFine_f1742d() {
   float arg_0 = 1.0f;
   float res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.fxc.hlsl
index 0e6ff7e..0ae4b60 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float fwidthFine_f1742d() {
   float arg_0 = 1.0f;
   float res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(fwidthFine_f1742d()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.glsl
index 26aefd5..d1f14cf 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float fwidthFine_f1742d() {
   float arg_0 = 1.0f;
   float res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_f1742d();
 }
diff --git a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.wgsl
index a9f9060..738cdca 100644
--- a/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/f1742d.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn fwidthFine_f1742d() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = fwidthFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_f1742d();
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl
index ba818fa..10655b8 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn fwidthFine(vec<2, f32>) -> vec<2, f32>
 fn fwidthFine_ff6aa0() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = fwidthFine(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_ff6aa0();
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl
index ef414ce..b01b051 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthFine_ff6aa0() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl
index ef414ce..b01b051 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return (abs(ddx_fine(v)) + abs(ddy_fine(v)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 fwidthFine_ff6aa0() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_fwidth_fine(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(fwidthFine_ff6aa0()));
   return;
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.glsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.glsl
index 16c0f45..eb7e6c3 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 fwidthFine_ff6aa0() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = fwidth(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = fwidthFine_ff6aa0();
 }
diff --git a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.wgsl
index 174884a..86dc5f4 100644
--- a/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/fwidthFine/ff6aa0.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn fwidthFine_ff6aa0() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = fwidthFine(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = fwidthFine_ff6aa0();
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl
index 4d1bc9d..0cbda12 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_input_attachments;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @input_attachment_index(3)
 @group(1) @binding(0) var arg_0: input_attachment<i32>;
 
@@ -44,8 +47,6 @@
   var res: vec4<i32> = inputAttachmentLoad(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_315bf5();
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm
index 8cb54cb..33bd23f 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.ir.spvasm
@@ -8,27 +8,27 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpMemberName %tint_symbol_1 0 "tint_symbol"
                OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_315bf5 "inputAttachmentLoad_315bf5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
+               OpMemberDecorate %tint_symbol_1 0 Offset 0
+               OpDecorate %tint_symbol_1 Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_0 InputAttachmentIndex 3
-               OpMemberDecorate %tint_symbol_1 0 Offset 0
-               OpDecorate %tint_symbol_1 Block
-               OpDecorate %5 DescriptorSet 0
-               OpDecorate %5 Binding 0
         %int = OpTypeInt 32 1
-          %3 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
       %v4int = OpTypeVector %int 4
 %tint_symbol_1 = OpTypeStruct %v4int
 %_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
-          %5 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %8 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
          %10 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
          %14 = OpConstantNull %v2int
@@ -41,7 +41,7 @@
 %inputAttachmentLoad_315bf5 = OpFunction %v4int None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function
-         %12 = OpLoad %3 %arg_0
+         %12 = OpLoad %8 %arg_0
          %13 = OpImageRead %v4int %12 %14
                OpStore %res %13
          %18 = OpLoad %v4int %res
@@ -50,7 +50,7 @@
 %fragment_main = OpFunction %void None %21
          %22 = OpLabel
          %23 = OpFunctionCall %v4int %inputAttachmentLoad_315bf5
-         %24 = OpAccessChain %_ptr_StorageBuffer_v4int %5 %uint_0
+         %24 = OpAccessChain %_ptr_StorageBuffer_v4int %1 %uint_0
                OpStore %24 %23
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.spvasm
index 62794ca..716833f 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.spvasm
@@ -8,28 +8,28 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_315bf5 "inputAttachmentLoad_315bf5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 InputAttachmentIndex 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 InputAttachmentIndex 3
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
         %int = OpTypeInt 32 1
-          %3 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
       %v4int = OpTypeVector %int 4
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %int SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
           %9 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
          %15 = OpConstantNull %v2int
@@ -43,7 +43,7 @@
 %inputAttachmentLoad_315bf5 = OpFunction %v4int None %9
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4int Function %18
-         %13 = OpLoad %3 %arg_0
+         %13 = OpLoad %8 %arg_0
          %12 = OpImageRead %v4int %13 %15
                OpStore %res %12
          %19 = OpLoad %v4int %res
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.wgsl
index 60744ad..3223464 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/315bf5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_input_attachments;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @input_attachment_index(3) @group(1) @binding(0) var arg_0 : input_attachment<i32>;
 
 fn inputAttachmentLoad_315bf5() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_315bf5();
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl
index e9a34b7..ac825c6 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_input_attachments;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @input_attachment_index(3)
 @group(1) @binding(0) var arg_0: input_attachment<f32>;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = inputAttachmentLoad(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_c38b2f();
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm
index 5303c00..0eb8373 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.ir.spvasm
@@ -8,27 +8,27 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpMemberName %tint_symbol_1 0 "tint_symbol"
                OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_c38b2f "inputAttachmentLoad_c38b2f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
+               OpMemberDecorate %tint_symbol_1 0 Offset 0
+               OpDecorate %tint_symbol_1 Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_0 InputAttachmentIndex 3
-               OpMemberDecorate %tint_symbol_1 0 Offset 0
-               OpDecorate %tint_symbol_1 Block
-               OpDecorate %5 DescriptorSet 0
-               OpDecorate %5 Binding 0
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
     %v4float = OpTypeVector %float 4
 %tint_symbol_1 = OpTypeStruct %v4float
 %_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
-          %5 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %8 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
          %10 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -42,7 +42,7 @@
 %inputAttachmentLoad_c38b2f = OpFunction %v4float None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function
-         %12 = OpLoad %3 %arg_0
+         %12 = OpLoad %8 %arg_0
          %13 = OpImageRead %v4float %12 %14
                OpStore %res %13
          %19 = OpLoad %v4float %res
@@ -51,7 +51,7 @@
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
          %24 = OpFunctionCall %v4float %inputAttachmentLoad_c38b2f
-         %25 = OpAccessChain %_ptr_StorageBuffer_v4float %5 %uint_0
+         %25 = OpAccessChain %_ptr_StorageBuffer_v4float %1 %uint_0
                OpStore %25 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm
index 552f7398..d4330af 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.spvasm
@@ -8,28 +8,28 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_c38b2f "inputAttachmentLoad_c38b2f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 InputAttachmentIndex 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 InputAttachmentIndex 3
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
           %9 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -44,7 +44,7 @@
 %inputAttachmentLoad_c38b2f = OpFunction %v4float None %9
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4float Function %19
-         %13 = OpLoad %3 %arg_0
+         %13 = OpLoad %8 %arg_0
          %12 = OpImageRead %v4float %13 %16
                OpStore %res %12
          %20 = OpLoad %v4float %res
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl
index c1b2904..4a9cd8f 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/c38b2f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_input_attachments;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @input_attachment_index(3) @group(1) @binding(0) var arg_0 : input_attachment<f32>;
 
 fn inputAttachmentLoad_c38b2f() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_c38b2f();
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl
index 2655222..69e54e6 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_input_attachments;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @input_attachment_index(3)
 @group(1) @binding(0) var arg_0: input_attachment<u32>;
 
@@ -44,8 +47,6 @@
   var res: vec4<u32> = inputAttachmentLoad(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_fc4d97();
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm
index 3ef2b11..78cc82e 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.ir.spvasm
@@ -8,27 +8,27 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpMemberName %tint_symbol_1 0 "tint_symbol"
                OpName %tint_symbol_1 "tint_symbol_1"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_fc4d97 "inputAttachmentLoad_fc4d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
+               OpMemberDecorate %tint_symbol_1 0 Offset 0
+               OpDecorate %tint_symbol_1 Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
                OpDecorate %arg_0 DescriptorSet 1
                OpDecorate %arg_0 Binding 0
                OpDecorate %arg_0 InputAttachmentIndex 3
-               OpMemberDecorate %tint_symbol_1 0 Offset 0
-               OpDecorate %tint_symbol_1 Block
-               OpDecorate %5 DescriptorSet 0
-               OpDecorate %5 Binding 0
        %uint = OpTypeInt 32 0
-          %3 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
      %v4uint = OpTypeVector %uint 4
 %tint_symbol_1 = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_tint_symbol_1 = OpTypePointer StorageBuffer %tint_symbol_1
-          %5 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %1 = OpVariable %_ptr_StorageBuffer_tint_symbol_1 StorageBuffer
+          %8 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
          %10 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -41,7 +41,7 @@
 %inputAttachmentLoad_fc4d97 = OpFunction %v4uint None %10
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function
-         %12 = OpLoad %3 %arg_0
+         %12 = OpLoad %8 %arg_0
          %13 = OpImageRead %v4uint %12 %14
                OpStore %res %13
          %19 = OpLoad %v4uint %res
@@ -50,7 +50,7 @@
 %fragment_main = OpFunction %void None %22
          %23 = OpLabel
          %24 = OpFunctionCall %v4uint %inputAttachmentLoad_fc4d97
-         %25 = OpAccessChain %_ptr_StorageBuffer_v4uint %5 %uint_0
+         %25 = OpAccessChain %_ptr_StorageBuffer_v4uint %1 %uint_0
                OpStore %25 %24
                OpReturn
                OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm
index 1d89e7f..0375c12 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.spvasm
@@ -8,28 +8,28 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %inputAttachmentLoad_fc4d97 "inputAttachmentLoad_fc4d97"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 InputAttachmentIndex 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 InputAttachmentIndex 3
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
        %uint = OpTypeInt 32 0
-          %3 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
      %v4uint = OpTypeVector %uint 4
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %uint SubpassData 0 0 0 2 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
           %9 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -43,7 +43,7 @@
 %inputAttachmentLoad_fc4d97 = OpFunction %v4uint None %9
          %11 = OpLabel
         %res = OpVariable %_ptr_Function_v4uint Function %19
-         %13 = OpLoad %3 %arg_0
+         %13 = OpLoad %8 %arg_0
          %12 = OpImageRead %v4uint %13 %16
                OpStore %res %12
          %20 = OpLoad %v4uint %res
diff --git a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl
index 23e211a..74d3196 100644
--- a/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inputAttachmentLoad/fc4d97.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_input_attachments;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @input_attachment_index(3) @group(1) @binding(0) var arg_0 : input_attachment<u32>;
 
 fn inputAttachmentLoad_fc4d97() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inputAttachmentLoad_fc4d97();
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl
index 38bc5dc..316d274 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn insertBits(vec<2, u32>, vec<2, u32>, u32, u32) -> vec<2, u32>
 fn insertBits_3c7ba5() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -44,8 +47,6 @@
   var res: vec2<u32> = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_3c7ba5();
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.dxc.hlsl
index 4e116e5..9b8214c 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint2((offset).xx)) : (0u).xx) & uint2((mask).xx)) | (v & uint2((~(mask)).xx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 insertBits_3c7ba5() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_3c7ba5()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.fxc.hlsl
index 4e116e5..9b8214c 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint2((offset).xx)) : (0u).xx) & uint2((mask).xx)) | (v & uint2((~(mask)).xx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 insertBits_3c7ba5() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_3c7ba5()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.glsl
index e2b9a46..8347fe9 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 insertBits_3c7ba5() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -42,6 +42,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 insertBits_3c7ba5() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.wgsl
index d2f16d9..22a8338 100644
--- a/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/3c7ba5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn insertBits_3c7ba5() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_3c7ba5();
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl
index 49a8314..6f4afb2 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn insertBits(vec<3, i32>, vec<3, i32>, u32, u32) -> vec<3, i32>
 fn insertBits_428b0b() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -44,8 +47,6 @@
   var res: vec3<i32> = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_428b0b();
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.dxc.hlsl
index 609b572..f9f87be 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint3((offset).xxx)) : (0).xxx) & int3((int(mask)).xxx)) | (v & int3((int(~(mask))).xxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 insertBits_428b0b() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.fxc.hlsl
index 609b572..f9f87be 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint3((offset).xxx)) : (0).xxx) & int3((int(mask)).xxx)) | (v & int3((int(~(mask))).xxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 insertBits_428b0b() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_428b0b()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.glsl
index 5bfc4af..5260f79 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.glsl
@@ -8,6 +8,11 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 insertBits_428b0b() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -17,11 +22,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -43,6 +43,11 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 insertBits_428b0b() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -52,11 +57,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.wgsl
index a1f3c42..78cac94 100644
--- a/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/428b0b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn insertBits_428b0b() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_428b0b();
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl
index 852848b..456c9b4 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn insertBits(vec<4, u32>, vec<4, u32>, u32, u32) -> vec<4, u32>
 fn insertBits_51ede1() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -44,8 +47,6 @@
   var res: vec4<u32> = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_51ede1();
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.dxc.hlsl
index 5ec7c6c..dfd0b08 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint4((offset).xxxx)) : (0u).xxxx) & uint4((mask).xxxx)) | (v & uint4((~(mask)).xxxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 insertBits_51ede1() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_51ede1()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.fxc.hlsl
index 5ec7c6c..dfd0b08 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint4((offset).xxxx)) : (0u).xxxx) & uint4((mask).xxxx)) | (v & uint4((~(mask)).xxxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 insertBits_51ede1() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_51ede1()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.glsl
index a43d55d..388d5a4 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 insertBits_51ede1() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -42,6 +42,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 insertBits_51ede1() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.wgsl
index 17e781b..c0b90fe 100644
--- a/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/51ede1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn insertBits_51ede1() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_51ede1();
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl
index 01bdb1a..76861f2 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn insertBits(i32, i32, u32, u32) -> i32
 fn insertBits_65468b() -> i32{
   var arg_0 = 1i;
@@ -44,8 +47,6 @@
   var res: i32 = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_65468b();
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.dxc.hlsl
index 5830ec1..7ec3e82 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << offset) : 0) & int(mask)) | (v & int(~(mask))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int insertBits_65468b() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_65468b()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.fxc.hlsl
index 5830ec1..7ec3e82 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << offset) : 0) & int(mask)) | (v & int(~(mask))));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int insertBits_65468b() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_65468b()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.glsl
index 8194aad..7bff6c1 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int insertBits_65468b() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -42,6 +42,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int insertBits_65468b() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.wgsl
index 12aa338..5a82af3 100644
--- a/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/65468b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn insertBits_65468b() -> i32 {
   var arg_0 = 1i;
   var arg_1 = 1i;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_65468b();
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl
index 2b45814..8e387a9 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn insertBits(vec<3, u32>, vec<3, u32>, u32, u32) -> vec<3, u32>
 fn insertBits_87826b() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -44,8 +47,6 @@
   var res: vec3<u32> = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_87826b();
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.dxc.hlsl
index b48bc46..b499d90 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint3((offset).xxx)) : (0u).xxx) & uint3((mask).xxx)) | (v & uint3((~(mask)).xxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 insertBits_87826b() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_87826b()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.fxc.hlsl
index b48bc46..b499d90 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint3((offset).xxx)) : (0u).xxx) & uint3((mask).xxx)) | (v & uint3((~(mask)).xxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 insertBits_87826b() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(insertBits_87826b()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.glsl
index 71407eb..f1f7866 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.glsl
@@ -8,6 +8,11 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 insertBits_87826b() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -17,11 +22,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -43,6 +43,11 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 insertBits_87826b() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -52,11 +57,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.wgsl
index 162370c..9952292 100644
--- a/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/87826b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn insertBits_87826b() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_87826b();
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl
index df51b1a..242add5 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn insertBits(vec<4, i32>, vec<4, i32>, u32, u32) -> vec<4, i32>
 fn insertBits_d86978() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -44,8 +47,6 @@
   var res: vec4<i32> = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_d86978();
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.dxc.hlsl
index 92b9515..609648a 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint4((offset).xxxx)) : (0).xxxx) & int4((int(mask)).xxxx)) | (v & int4((int(~(mask))).xxxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 insertBits_d86978() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_d86978()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.fxc.hlsl
index 92b9515..609648a 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint4((offset).xxxx)) : (0).xxxx) & int4((int(mask)).xxxx)) | (v & int4((int(~(mask))).xxxx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 insertBits_d86978() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(insertBits_d86978()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.glsl
index 0ec8693..5b9e71e 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 insertBits_d86978() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -42,6 +42,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 insertBits_d86978() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.wgsl
index c395d57..c1c7d4d 100644
--- a/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/d86978.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn insertBits_d86978() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_d86978();
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl
index 8a14a25..625d2ae 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn insertBits(u32, u32, u32, u32) -> u32
 fn insertBits_e3e3a2() -> u32{
   var arg_0 = 1u;
@@ -44,8 +47,6 @@
   var res: u32 = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_e3e3a2();
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.dxc.hlsl
index cc2a3d0..99a1c2e 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << offset) : 0u) & mask) | (v & ~(mask)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint insertBits_e3e3a2() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_e3e3a2()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.fxc.hlsl
index cc2a3d0..99a1c2e 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << offset) : 0u) & mask) | (v & ~(mask)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint insertBits_e3e3a2() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(insertBits_e3e3a2()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.glsl
index 459cc86..9b6afc7 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint insertBits_e3e3a2() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -42,6 +42,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint insertBits_e3e3a2() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.wgsl
index b962c80..d87d40f 100644
--- a/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/e3e3a2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn insertBits_e3e3a2() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_e3e3a2();
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl
index 6bea0bc..ba0dcf9 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn insertBits(vec<2, i32>, vec<2, i32>, u32, u32) -> vec<2, i32>
 fn insertBits_fe6ba6() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -44,8 +47,6 @@
   var res: vec2<i32> = insertBits(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_fe6ba6();
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.dxc.hlsl
index 76af62f..6a24694 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.dxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint2((offset).xx)) : (0).xx) & int2((int(mask)).xx)) | (v & int2((int(~(mask))).xx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 insertBits_fe6ba6() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.fxc.hlsl
index 76af62f..6a24694 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.fxc.hlsl
@@ -4,6 +4,8 @@
   return ((((offset < 32u) ? (n << uint2((offset).xx)) : (0).xx) & int2((int(mask)).xx)) | (v & int2((int(~(mask))).xx)));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 insertBits_fe6ba6() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -13,8 +15,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(insertBits_fe6ba6()));
   return;
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.glsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.glsl
index a0012632..c39f5ea 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.glsl
@@ -8,6 +8,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 insertBits_fe6ba6() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -42,6 +42,10 @@
   return bitfieldInsert(v, n, int(s), int((e - s)));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 insertBits_fe6ba6() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.wgsl
index 44e1792..f868d6c 100644
--- a/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/insertBits/fe6ba6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn insertBits_fe6ba6() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = insertBits_fe6ba6();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl
index 6cd8610..cce386b 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn inverseSqrt(f16) -> f16
 fn inverseSqrt_440300() -> f16{
   var arg_0 = 1.h;
   var res: f16 = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_440300();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.dxc.hlsl
index 0a66184..0606c82 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t inverseSqrt_440300() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, inverseSqrt_440300());
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.glsl
index 7d07729..130d3ca 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t inverseSqrt_440300() {
   float16_t arg_0 = 1.0hf;
   float16_t res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t inverseSqrt_440300() {
   float16_t arg_0 = 1.0hf;
   float16_t res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.wgsl
index bd2e140..2bcdef2 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/440300.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn inverseSqrt_440300() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_440300();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl
index f1ec53f..5515115 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn inverseSqrt(vec<2, f16>) -> vec<2, f16>
 fn inverseSqrt_5f51f8() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_5f51f8();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl
index 45616dd..d38649b 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> inverseSqrt_5f51f8() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, inverseSqrt_5f51f8());
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.glsl
index 819d7b2..030a18e 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 inverseSqrt_5f51f8() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 inverseSqrt_5f51f8() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.wgsl
index 7fc32c6..60aa919 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/5f51f8.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn inverseSqrt_5f51f8() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_5f51f8();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl
index 11366e0..a3b03b0 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn inverseSqrt(f32) -> f32
 fn inverseSqrt_84407e() -> f32{
   var arg_0 = 1.f;
   var res: f32 = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_84407e();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.dxc.hlsl
index 631bc08..fa56a32 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float inverseSqrt_84407e() {
   float arg_0 = 1.0f;
   float res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.fxc.hlsl
index 631bc08..fa56a32 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float inverseSqrt_84407e() {
   float arg_0 = 1.0f;
   float res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(inverseSqrt_84407e()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.glsl
index 83b6a04..0cd32bd 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float inverseSqrt_84407e() {
   float arg_0 = 1.0f;
   float res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float inverseSqrt_84407e() {
   float arg_0 = 1.0f;
   float res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.wgsl
index 7702c4f..f5be4c9 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/84407e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn inverseSqrt_84407e() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_84407e();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl
index 642ae0b..ff89a66 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn inverseSqrt(vec<2, f32>) -> vec<2, f32>
 fn inverseSqrt_8f2bd2() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_8f2bd2();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl
index 1cf32df..e6e2ede 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 inverseSqrt_8f2bd2() {
   float2 arg_0 = (1.0f).xx;
   float2 res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl
index 1cf32df..e6e2ede 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 inverseSqrt_8f2bd2() {
   float2 arg_0 = (1.0f).xx;
   float2 res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(inverseSqrt_8f2bd2()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.glsl
index 075d601..6e57522 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 inverseSqrt_8f2bd2() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 inverseSqrt_8f2bd2() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.wgsl
index 801af5f..9ecbd79 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/8f2bd2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn inverseSqrt_8f2bd2() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_8f2bd2();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl
index 53a0cd6..461d480 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn inverseSqrt(vec<3, f32>) -> vec<3, f32>
 fn inverseSqrt_b197b1() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b197b1();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl
index aefb517..9378063 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 inverseSqrt_b197b1() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl
index aefb517..9378063 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 inverseSqrt_b197b1() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(inverseSqrt_b197b1()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.glsl
index 9fa1d5d..eebe2b4 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 inverseSqrt_b197b1() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 inverseSqrt_b197b1() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.wgsl
index 752f446..215351b 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b197b1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn inverseSqrt_b197b1() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b197b1();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl
index 4e73b2f..8318e58 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn inverseSqrt(vec<3, f16>) -> vec<3, f16>
 fn inverseSqrt_b85ebd() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b85ebd();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl
index 161e8c9..96df6cf 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> inverseSqrt_b85ebd() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, inverseSqrt_b85ebd());
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.glsl
index 0a7c5ba..ee3a4fe 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 inverseSqrt_b85ebd() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 inverseSqrt_b85ebd() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.wgsl
index 355ab36..178bc11 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/b85ebd.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn inverseSqrt_b85ebd() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_b85ebd();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl
index 4a310ab..09ff774 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn inverseSqrt(vec<4, f32>) -> vec<4, f32>
 fn inverseSqrt_c22347() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_c22347();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.dxc.hlsl
index 15378fc..496b5b4 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 inverseSqrt_c22347() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.fxc.hlsl
index 15378fc..496b5b4 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 inverseSqrt_c22347() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(inverseSqrt_c22347()));
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.glsl
index 84f1050..0a6f788 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 inverseSqrt_c22347() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 inverseSqrt_c22347() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.wgsl
index dcd5673..5181bf2 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/c22347.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn inverseSqrt_c22347() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_c22347();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl
index 3038c00..7182add 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn inverseSqrt(vec<4, f16>) -> vec<4, f16>
 fn inverseSqrt_cbdc70() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = inverseSqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_cbdc70();
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl
index d439200..27f3c75 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> inverseSqrt_cbdc70() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = rsqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, inverseSqrt_cbdc70());
   return;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.glsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.glsl
index d10f422..3fc3d7b 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 inverseSqrt_cbdc70() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 inverseSqrt_cbdc70() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = inversesqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.wgsl b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.wgsl
index 9261045..6d37ad8 100644
--- a/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/inverseSqrt/cbdc70.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn inverseSqrt_cbdc70() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = inverseSqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = inverseSqrt_cbdc70();
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl
index 50adc8a..7c5dde8 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn ldexp(f16, ia) -> f16
 fn ldexp_082c1f() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_082c1f();
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.dxc.hlsl
index 5746759..fb426e5 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t ldexp_082c1f() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = ldexp(arg_0, 1);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, ldexp_082c1f());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.glsl
index 7a6f4c5..c74a60a 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_082c1f() {
   float16_t arg_0 = 1.0hf;
   float16_t res = ldexp(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_082c1f() {
   float16_t arg_0 = 1.0hf;
   float16_t res = ldexp(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.wgsl
index 8ece2aa..9625b6f 100644
--- a/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/082c1f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn ldexp_082c1f() -> f16 {
   var arg_0 = 1.0h;
   const arg_1 = 1;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_082c1f();
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl
index f99d27e..e1f16cb 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn ldexp(vec<2, f16>, vec<2, ia>) -> vec<2, f16>
 fn ldexp_217a31() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_217a31();
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.dxc.hlsl
index 6de721e..893862c 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> ldexp_217a31() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = ldexp(arg_0, (1).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_217a31());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.glsl
index acdc70c..7db20c5 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_217a31() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = ldexp(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_217a31() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = ldexp(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.wgsl
index ec488b3..91fe2ce 100644
--- a/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/217a31.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn ldexp_217a31() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   const arg_1 = vec2(1);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_217a31();
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl
index 6b9301e..1b92f6a 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn ldexp(vec<2, f16>, vec<2, i32>) -> vec<2, f16>
 fn ldexp_3d90b4() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_3d90b4();
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.dxc.hlsl
index 29e75e3..c6c8353 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> ldexp_3d90b4() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, ldexp_3d90b4());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.glsl
index 3578f9d..8a9b310 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_3d90b4() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 ldexp_3d90b4() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.wgsl
index cc93661..0b380cb 100644
--- a/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/3d90b4.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn ldexp_3d90b4() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<i32>(1i);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_3d90b4();
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl
index a2d9902..68cca75 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn ldexp(vec<3, f32>, vec<3, ia>) -> vec<3, f32>
 fn ldexp_593ff3() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_593ff3();
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.dxc.hlsl
index a4adc15..1fc2ce9 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_593ff3() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ldexp(arg_0, (1).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.fxc.hlsl
index a4adc15..1fc2ce9 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_593ff3() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = ldexp(arg_0, (1).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_593ff3()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.glsl
index 4c5a957..12d8848 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 ldexp_593ff3() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = ldexp(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 ldexp_593ff3() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = ldexp(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.wgsl
index bca451e..450b0fa 100644
--- a/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/593ff3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn ldexp_593ff3() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   const arg_1 = vec3(1);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_593ff3();
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl
index e521601..8293119 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn ldexp(f16, i32) -> f16
 fn ldexp_624e0c() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_624e0c();
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.dxc.hlsl
index 0799ec7..885fbf2 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t ldexp_624e0c() {
   float16_t arg_0 = float16_t(1.0h);
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, ldexp_624e0c());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.glsl
index f9766fc..f316a0b 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_624e0c() {
   float16_t arg_0 = 1.0hf;
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t ldexp_624e0c() {
   float16_t arg_0 = 1.0hf;
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.wgsl
index d176691..5815a45 100644
--- a/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/624e0c.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn ldexp_624e0c() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1i;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_624e0c();
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl
index 7ec97381..576b72f 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn ldexp(vec<4, f32>, vec<4, ia>) -> vec<4, f32>
 fn ldexp_65a7bd() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_65a7bd();
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.dxc.hlsl
index d3d4309..a69e40f 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_65a7bd() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ldexp(arg_0, (1).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.fxc.hlsl
index d3d4309..a69e40f 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_65a7bd() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = ldexp(arg_0, (1).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_65a7bd()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.glsl
index 023d207..bf26394 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_65a7bd() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = ldexp(arg_0, ivec4(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_65a7bd() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = ldexp(arg_0, ivec4(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.wgsl
index 1f6b397..d25275b 100644
--- a/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/65a7bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn ldexp_65a7bd() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   const arg_1 = vec4(1);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_65a7bd();
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl
index 091b56b..4ce0c65 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn ldexp(vec<3, f16>, vec<3, i32>) -> vec<3, f16>
 fn ldexp_7485ce() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7485ce();
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.dxc.hlsl
index 6cc86a0..e5c9204 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> ldexp_7485ce() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_7485ce());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.glsl
index b9bfbbd..6e9838a 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_7485ce() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_7485ce() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.wgsl
index a03795f..6354b1f 100644
--- a/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/7485ce.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn ldexp_7485ce() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<i32>(1i);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7485ce();
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl
index 44c56da..9980d75 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn ldexp(vec<4, f16>, vec<4, i32>) -> vec<4, f16>
 fn ldexp_7fa13c() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7fa13c();
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.dxc.hlsl
index d82365c..fe339ed 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> ldexp_7fa13c() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_7fa13c());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.glsl
index f92c74f..0f69a2a 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_7fa13c() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   ivec4 arg_1 = ivec4(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_7fa13c() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   ivec4 arg_1 = ivec4(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.wgsl
index 85879c1..8816e5a 100644
--- a/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/7fa13c.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn ldexp_7fa13c() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<i32>(1i);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_7fa13c();
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl
index c54b5e6..0525639 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn ldexp(vec<4, f16>, vec<4, ia>) -> vec<4, f16>
 fn ldexp_8a0c2f() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8a0c2f();
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.dxc.hlsl
index cc62667..fe09f54 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> ldexp_8a0c2f() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = ldexp(arg_0, (1).xxxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, ldexp_8a0c2f());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.glsl
index 810cf7d..204eef8 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_8a0c2f() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = ldexp(arg_0, ivec4(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 ldexp_8a0c2f() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = ldexp(arg_0, ivec4(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.wgsl
index 27b74b8..0b3317f 100644
--- a/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/8a0c2f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn ldexp_8a0c2f() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   const arg_1 = vec4(1);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8a0c2f();
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl
index ff50b2e..039ded9 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn ldexp(vec<3, f16>, vec<3, ia>) -> vec<3, f16>
 fn ldexp_8e43e9() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8e43e9();
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.dxc.hlsl
index 0d73843..4538874 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> ldexp_8e43e9() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = ldexp(arg_0, (1).xxx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, ldexp_8e43e9());
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.glsl
index 143816f..b326f8e 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_8e43e9() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = ldexp(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 ldexp_8e43e9() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = ldexp(arg_0, ivec3(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.wgsl
index 02bc289..af59251 100644
--- a/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/8e43e9.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn ldexp_8e43e9() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   const arg_1 = vec3(1);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_8e43e9();
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl
index f7cc4de..d855986 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn ldexp(vec<2, f32>, vec<2, ia>) -> vec<2, f32>
 fn ldexp_a22679() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a22679();
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.dxc.hlsl
index 36aaee6..11a9bbc 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_a22679() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ldexp(arg_0, (1).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_a22679()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.fxc.hlsl
index 36aaee6..11a9bbc 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_a22679() {
   float2 arg_0 = (1.0f).xx;
   float2 res = ldexp(arg_0, (1).xx);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_a22679()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.glsl
index ae044d5..0db4913 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_a22679() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = ldexp(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_a22679() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = ldexp(arg_0, ivec2(1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.wgsl
index 527a794..a7afe45 100644
--- a/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/a22679.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn ldexp_a22679() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   const arg_1 = vec2(1);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a22679();
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl
index 6d57ab5..73a5da8 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn ldexp(vec<3, f32>, vec<3, i32>) -> vec<3, f32>
 fn ldexp_a31cdc() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a31cdc();
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.dxc.hlsl
index 9814dd8e..b8da20a 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_a31cdc() {
   float3 arg_0 = (1.0f).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.fxc.hlsl
index 9814dd8e..b8da20a 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 ldexp_a31cdc() {
   float3 arg_0 = (1.0f).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(ldexp_a31cdc()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.glsl
index 314aaed..1e47455 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 ldexp_a31cdc() {
   vec3 arg_0 = vec3(1.0f);
   ivec3 arg_1 = ivec3(1);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 ldexp_a31cdc() {
   vec3 arg_0 = vec3(1.0f);
   ivec3 arg_1 = ivec3(1);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.wgsl
index f5d8ed8..d72397d 100644
--- a/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/a31cdc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn ldexp_a31cdc() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_a31cdc();
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl
index 2be50f4..9e28fe4 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn ldexp(vec<2, f32>, vec<2, i32>) -> vec<2, f32>
 fn ldexp_abd718() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_abd718();
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.dxc.hlsl
index ded2940..060b9b6 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_abd718() {
   float2 arg_0 = (1.0f).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_abd718()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.fxc.hlsl
index ded2940..060b9b6 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 ldexp_abd718() {
   float2 arg_0 = (1.0f).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(ldexp_abd718()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.glsl
index e52b434..1e2ee8e 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_abd718() {
   vec2 arg_0 = vec2(1.0f);
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 ldexp_abd718() {
   vec2 arg_0 = vec2(1.0f);
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.wgsl
index 847ff29..d258e1d 100644
--- a/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/abd718.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn ldexp_abd718() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_abd718();
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl
index 1dc2e65..1c96766 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn ldexp(f32, ia) -> f32
 fn ldexp_c9d0b7() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_c9d0b7();
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.dxc.hlsl
index 946311e..d8dd63f 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_c9d0b7() {
   float arg_0 = 1.0f;
   float res = ldexp(arg_0, 1);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.fxc.hlsl
index 946311e..d8dd63f 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_c9d0b7() {
   float arg_0 = 1.0f;
   float res = ldexp(arg_0, 1);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_c9d0b7()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.glsl
index 4bc7e9f..33bc020 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_c9d0b7() {
   float arg_0 = 1.0f;
   float res = ldexp(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_c9d0b7() {
   float arg_0 = 1.0f;
   float res = ldexp(arg_0, 1);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.wgsl
index 79f4dea..d7e7604 100644
--- a/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/c9d0b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn ldexp_c9d0b7() -> f32 {
   var arg_0 = 1.0f;
   const arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_c9d0b7();
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl
index dde469f..6b7be33 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn ldexp(vec<4, f32>, vec<4, i32>) -> vec<4, f32>
 fn ldexp_cc9cde() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_cc9cde();
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.dxc.hlsl
index 6a44d11..a05121e 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_cc9cde() {
   float4 arg_0 = (1.0f).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.fxc.hlsl
index 6a44d11..a05121e 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 ldexp_cc9cde() {
   float4 arg_0 = (1.0f).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(ldexp_cc9cde()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.glsl
index a8f80a4..cc66a51 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_cc9cde() {
   vec4 arg_0 = vec4(1.0f);
   ivec4 arg_1 = ivec4(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 ldexp_cc9cde() {
   vec4 arg_0 = vec4(1.0f);
   ivec4 arg_1 = ivec4(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.wgsl
index 6514222..f4d47cc 100644
--- a/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/cc9cde.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn ldexp_cc9cde() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_cc9cde();
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl
index 1716ca06..8838918 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn ldexp(f32, i32) -> f32
 fn ldexp_db8b49() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = ldexp(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_db8b49();
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.dxc.hlsl
index 462c6fb..117609e 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_db8b49() {
   float arg_0 = 1.0f;
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_db8b49()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.fxc.hlsl
index 462c6fb..117609e 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float ldexp_db8b49() {
   float arg_0 = 1.0f;
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(ldexp_db8b49()));
   return;
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.glsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.glsl
index 9c7d272..c322bd8 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_db8b49() {
   float arg_0 = 1.0f;
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float ldexp_db8b49() {
   float arg_0 = 1.0f;
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.wgsl b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.wgsl
index a0b2c20..d66c9220 100644
--- a/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/ldexp/db8b49.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn ldexp_db8b49() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1i;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = ldexp_db8b49();
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl b/test/tint/builtins/gen/var/length/056071.wgsl
index e0a94a0..fe916b9 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(vec<3, f32>) -> f32
 fn length_056071() -> f32{
   var arg_0 = vec3<f32>(0.f);
   var res: f32 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_056071();
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.dxc.hlsl
index cd17a69..a8f5090 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_056071() {
   float3 arg_0 = (0.0f).xxx;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_056071()));
   return;
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.fxc.hlsl
index cd17a69..a8f5090 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_056071() {
   float3 arg_0 = (0.0f).xxx;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_056071()));
   return;
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.glsl
index ca2dd5a..e473849 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_056071() {
   vec3 arg_0 = vec3(0.0f);
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_056071() {
   vec3 arg_0 = vec3(0.0f);
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/056071.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/056071.wgsl.expected.wgsl
index 2a65c4d..fd3aca8 100644
--- a/test/tint/builtins/gen/var/length/056071.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/056071.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_056071() -> f32 {
   var arg_0 = vec3<f32>(0.0f);
   var res : f32 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_056071();
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl b/test/tint/builtins/gen/var/length/3f0e13.wgsl
index cca261b..f00390a 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(vec<2, f16>) -> f16
 fn length_3f0e13() -> f16{
   var arg_0 = vec2<f16>(0.h);
   var res: f16 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_3f0e13();
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.dxc.hlsl
index c387cec..60b6fe9 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_3f0e13() {
   vector<float16_t, 2> arg_0 = (float16_t(0.0h)).xx;
   float16_t res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_3f0e13());
   return;
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.glsl
index 8e358ac..2103723 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_3f0e13() {
   f16vec2 arg_0 = f16vec2(0.0hf);
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_3f0e13() {
   f16vec2 arg_0 = f16vec2(0.0hf);
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.wgsl
index e80b4a2..9b30aad 100644
--- a/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/3f0e13.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_3f0e13() -> f16 {
   var arg_0 = vec2<f16>(0.0h);
   var res : f16 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_3f0e13();
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl
index 8611307..d72631b 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(vec<4, f16>) -> f16
 fn length_5b1a9b() -> f16{
   var arg_0 = vec4<f16>(0.h);
   var res: f16 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_5b1a9b();
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.dxc.hlsl
index c14beed..4ab66ae 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_5b1a9b() {
   vector<float16_t, 4> arg_0 = (float16_t(0.0h)).xxxx;
   float16_t res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_5b1a9b());
   return;
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.glsl
index 6508aaa..9f61b33 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_5b1a9b() {
   f16vec4 arg_0 = f16vec4(0.0hf);
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_5b1a9b() {
   f16vec4 arg_0 = f16vec4(0.0hf);
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.wgsl
index 0dcef5d..66fc1a2 100644
--- a/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/5b1a9b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_5b1a9b() -> f16 {
   var arg_0 = vec4<f16>(0.0h);
   var res : f16 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_5b1a9b();
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl b/test/tint/builtins/gen/var/length/602a17.wgsl
index 078b78e..0acc9b5 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(f32) -> f32
 fn length_602a17() -> f32{
   var arg_0 = 0.f;
   var res: f32 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_602a17();
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.dxc.hlsl
index e83fb7d..c037768 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_602a17() {
   float arg_0 = 0.0f;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_602a17()));
   return;
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.fxc.hlsl
index e83fb7d..c037768 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_602a17() {
   float arg_0 = 0.0f;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_602a17()));
   return;
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.glsl
index f53d9f6..4e48be3 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_602a17() {
   float arg_0 = 0.0f;
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_602a17() {
   float arg_0 = 0.0f;
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.wgsl
index 45845de..12091d6 100644
--- a/test/tint/builtins/gen/var/length/602a17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/602a17.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_602a17() -> f32 {
   var arg_0 = 0.0f;
   var res : f32 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_602a17();
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl b/test/tint/builtins/gen/var/length/afde8b.wgsl
index 7b76b7b..2828338 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(vec<2, f32>) -> f32
 fn length_afde8b() -> f32{
   var arg_0 = vec2<f32>(0.f);
   var res: f32 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_afde8b();
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.dxc.hlsl
index 1690c7c..6679946 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_afde8b() {
   float2 arg_0 = (0.0f).xx;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_afde8b()));
   return;
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.fxc.hlsl
index 1690c7c..6679946 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_afde8b() {
   float2 arg_0 = (0.0f).xx;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_afde8b()));
   return;
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.glsl
index 50ba6a2..cb495ea 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_afde8b() {
   vec2 arg_0 = vec2(0.0f);
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_afde8b() {
   vec2 arg_0 = vec2(0.0f);
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.wgsl
index 7921845..883b7b5 100644
--- a/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/afde8b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_afde8b() -> f32 {
   var arg_0 = vec2<f32>(0.0f);
   var res : f32 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_afde8b();
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl b/test/tint/builtins/gen/var/length/ba16d6.wgsl
index d9698df..aaf0a96 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(vec<3, f16>) -> f16
 fn length_ba16d6() -> f16{
   var arg_0 = vec3<f16>(0.h);
   var res: f16 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_ba16d6();
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.dxc.hlsl
index d8e492f..859da41 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_ba16d6() {
   vector<float16_t, 3> arg_0 = (float16_t(0.0h)).xxx;
   float16_t res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_ba16d6());
   return;
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.glsl
index ef90ea1..427a015 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_ba16d6() {
   f16vec3 arg_0 = f16vec3(0.0hf);
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_ba16d6() {
   f16vec3 arg_0 = f16vec3(0.0hf);
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.wgsl
index fb9e9d4..1f8dd6c 100644
--- a/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/ba16d6.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_ba16d6() -> f16 {
   var arg_0 = vec3<f16>(0.0h);
   var res : f16 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_ba16d6();
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl b/test/tint/builtins/gen/var/length/becebf.wgsl
index fa00ee5..9005636 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn length(vec<4, f32>) -> f32
 fn length_becebf() -> f32{
   var arg_0 = vec4<f32>(0.f);
   var res: f32 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_becebf();
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.dxc.hlsl
index b90a564..48b0f26 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_becebf() {
   float4 arg_0 = (0.0f).xxxx;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_becebf()));
   return;
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.fxc.hlsl
index b90a564..48b0f26 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float length_becebf() {
   float4 arg_0 = (0.0f).xxxx;
   float res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(length_becebf()));
   return;
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.glsl
index 7c6ead8..70b7d8b 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_becebf() {
   vec4 arg_0 = vec4(0.0f);
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float length_becebf() {
   vec4 arg_0 = vec4(0.0f);
   float res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.wgsl
index 1897748..04f4dec 100644
--- a/test/tint/builtins/gen/var/length/becebf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/becebf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn length_becebf() -> f32 {
   var arg_0 = vec4<f32>(0.0f);
   var res : f32 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_becebf();
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl b/test/tint/builtins/gen/var/length/c158da.wgsl
index e68a6f1..f4781df 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn length(f16) -> f16
 fn length_c158da() -> f16{
   var arg_0 = 0.h;
   var res: f16 = length(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_c158da();
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.dxc.hlsl
index dc6d521..1d48a8f 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t length_c158da() {
   float16_t arg_0 = float16_t(0.0h);
   float16_t res = length(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, length_c158da());
   return;
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.glsl b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.glsl
index 386e95c..60ef4e1 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_c158da() {
   float16_t arg_0 = 0.0hf;
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t length_c158da() {
   float16_t arg_0 = 0.0hf;
   float16_t res = length(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.wgsl b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.wgsl
index 2da8c55..5416de8 100644
--- a/test/tint/builtins/gen/var/length/c158da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/length/c158da.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn length_c158da() -> f16 {
   var arg_0 = 0.0h;
   var res : f16 = length(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = length_c158da();
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl b/test/tint/builtins/gen/var/log/3da25a.wgsl
index 1a1a919..1a8e947 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn log(vec<4, f32>) -> vec<4, f32>
 fn log_3da25a() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_3da25a();
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.dxc.hlsl
index 61d9bb6..217cd2c 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log_3da25a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log_3da25a()));
   return;
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.fxc.hlsl
index 61d9bb6..217cd2c 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log_3da25a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log_3da25a()));
   return;
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.glsl
index 579d411..a9952f1 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log_3da25a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log_3da25a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.wgsl
index 69e90ec..925ac7c 100644
--- a/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/3da25a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn log_3da25a() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_3da25a();
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl
index d2c8d47..a1efe73 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn log(vec<3, f16>) -> vec<3, f16>
 fn log_6ff86f() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_6ff86f();
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.dxc.hlsl
index dafec7b..a1e763d 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> log_6ff86f() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, log_6ff86f());
   return;
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.glsl
index 3ec135f..f951371 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log_6ff86f() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log_6ff86f() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.wgsl
index e9f2897..61129ea 100644
--- a/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/6ff86f.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn log_6ff86f() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_6ff86f();
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl b/test/tint/builtins/gen/var/log/7114a6.wgsl
index f39fe7d..c3063cc 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn log(f32) -> f32
 fn log_7114a6() -> f32{
   var arg_0 = 1.f;
   var res: f32 = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_7114a6();
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.dxc.hlsl
index 90ac811..1afcba5 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log_7114a6() {
   float arg_0 = 1.0f;
   float res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log_7114a6()));
   return;
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.fxc.hlsl
index 90ac811..1afcba5 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log_7114a6() {
   float arg_0 = 1.0f;
   float res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log_7114a6()));
   return;
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.glsl
index 04bcb22..2cdd5c0 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log_7114a6() {
   float arg_0 = 1.0f;
   float res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log_7114a6() {
   float arg_0 = 1.0f;
   float res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.wgsl
index fa335ec..56f40bf 100644
--- a/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/7114a6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn log_7114a6() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_7114a6();
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl
index 427cc38..65bd9e0 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn log(vec<2, f16>) -> vec<2, f16>
 fn log_8f0e32() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_8f0e32();
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.dxc.hlsl
index 3f8ec56..3ed88cb 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> log_8f0e32() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, log_8f0e32());
   return;
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.glsl
index b66c9c0..795bc8b 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log_8f0e32() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log_8f0e32() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.wgsl
index 95bb57c..5fc4223 100644
--- a/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/8f0e32.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn log_8f0e32() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_8f0e32();
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl
index 076af92..770cb0f 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn log(vec<2, f32>) -> vec<2, f32>
 fn log_b2ce28() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_b2ce28();
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.dxc.hlsl
index 38fa975..06aa0a2 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log_b2ce28() {
   float2 arg_0 = (1.0f).xx;
   float2 res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log_b2ce28()));
   return;
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.fxc.hlsl
index 38fa975..06aa0a2 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log_b2ce28() {
   float2 arg_0 = (1.0f).xx;
   float2 res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log_b2ce28()));
   return;
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.glsl
index 1319776..bbe1ec4 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log_b2ce28() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log_b2ce28() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.wgsl
index 5e6a0a8..e0e0cc3 100644
--- a/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/b2ce28.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn log_b2ce28() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_b2ce28();
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl b/test/tint/builtins/gen/var/log/c9f489.wgsl
index 3abf97a..aeaa4c2 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn log(f16) -> f16
 fn log_c9f489() -> f16{
   var arg_0 = 1.h;
   var res: f16 = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_c9f489();
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.dxc.hlsl
index ba268d1..8e969b2 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t log_c9f489() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, log_c9f489());
   return;
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.glsl
index d59b9d5..6a766df 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log_c9f489() {
   float16_t arg_0 = 1.0hf;
   float16_t res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log_c9f489() {
   float16_t arg_0 = 1.0hf;
   float16_t res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.wgsl
index b6f3e34..56a5bbb 100644
--- a/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/c9f489.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn log_c9f489() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_c9f489();
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl
index 1b93c0b..480af83 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn log(vec<4, f16>) -> vec<4, f16>
 fn log_cdbdc1() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_cdbdc1();
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.dxc.hlsl
index ba7ba67..58f21d3 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> log_cdbdc1() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, log_cdbdc1());
   return;
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.glsl
index 02f1eaa..30320c0 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log_cdbdc1() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log_cdbdc1() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.wgsl
index 7d8dc97..daba89f 100644
--- a/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/cdbdc1.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn log_cdbdc1() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_cdbdc1();
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl b/test/tint/builtins/gen/var/log/f4c570.wgsl
index 9b35ac3..350e93d 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn log(vec<3, f32>) -> vec<3, f32>
 fn log_f4c570() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = log(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_f4c570();
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.dxc.hlsl
index 8ab2d62..fc57b35 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log_f4c570() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log_f4c570()));
   return;
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.fxc.hlsl
index 8ab2d62..fc57b35 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log_f4c570() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = log(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log_f4c570()));
   return;
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.glsl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.glsl
index 1eb8692..8f6597e 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 log_f4c570() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 log_f4c570() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = log(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.wgsl
index 797c534..788ad25 100644
--- a/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log/f4c570.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn log_f4c570() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = log(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log_f4c570();
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl b/test/tint/builtins/gen/var/log2/38b478.wgsl
index 5d96a5c..47cfec2 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn log2(vec<3, f16>) -> vec<3, f16>
 fn log2_38b478() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_38b478();
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.dxc.hlsl
index 104348b..4b456c0 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> log2_38b478() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, log2_38b478());
   return;
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.glsl
index 3c65d55..b98060c 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log2_38b478() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 log2_38b478() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.wgsl
index dc56d01..fc721fd 100644
--- a/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/38b478.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn log2_38b478() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_38b478();
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl
index 21c92b3..69a2907 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn log2(f32) -> f32
 fn log2_4036ed() -> f32{
   var arg_0 = 1.f;
   var res: f32 = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_4036ed();
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.dxc.hlsl
index 37a0f45..32f0946 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log2_4036ed() {
   float arg_0 = 1.0f;
   float res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log2_4036ed()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.fxc.hlsl
index 37a0f45..32f0946 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float log2_4036ed() {
   float arg_0 = 1.0f;
   float res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(log2_4036ed()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.glsl
index 92ba269..db1989c 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log2_4036ed() {
   float arg_0 = 1.0f;
   float res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float log2_4036ed() {
   float arg_0 = 1.0f;
   float res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.wgsl
index 8c61100..09ad631 100644
--- a/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/4036ed.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn log2_4036ed() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_4036ed();
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl b/test/tint/builtins/gen/var/log2/776088.wgsl
index a4761df..e1691da 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn log2(vec<4, f16>) -> vec<4, f16>
 fn log2_776088() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_776088();
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.dxc.hlsl
index 2ef5996..ce21aa5 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> log2_776088() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, log2_776088());
   return;
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.glsl
index 33e35d3..6a78861 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log2_776088() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 log2_776088() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.wgsl
index ecd6ef8..db19b13 100644
--- a/test/tint/builtins/gen/var/log2/776088.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/776088.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn log2_776088() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_776088();
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl
index 69afd68..b39e5e5 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn log2(f16) -> f16
 fn log2_8c10b3() -> f16{
   var arg_0 = 1.h;
   var res: f16 = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_8c10b3();
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.dxc.hlsl
index 8907b7d..24c7e22 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t log2_8c10b3() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, log2_8c10b3());
   return;
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.glsl
index a540c81..76eaba7 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log2_8c10b3() {
   float16_t arg_0 = 1.0hf;
   float16_t res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t log2_8c10b3() {
   float16_t arg_0 = 1.0hf;
   float16_t res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.wgsl
index 72ecd2f..7f08615 100644
--- a/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/8c10b3.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn log2_8c10b3() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_8c10b3();
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl b/test/tint/builtins/gen/var/log2/902988.wgsl
index 676f070..6e5edb0 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn log2(vec<4, f32>) -> vec<4, f32>
 fn log2_902988() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_902988();
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.dxc.hlsl
index 66b746c..b28c2b3 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log2_902988() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log2_902988()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.fxc.hlsl
index 66b746c..b28c2b3 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 log2_902988() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(log2_902988()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.glsl
index 7d419f7..e43bba1 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log2_902988() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 log2_902988() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.wgsl
index 1defd92..3455015 100644
--- a/test/tint/builtins/gen/var/log2/902988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/902988.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn log2_902988() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_902988();
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl b/test/tint/builtins/gen/var/log2/adb233.wgsl
index b5e5d25..1c58c83 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn log2(vec<3, f32>) -> vec<3, f32>
 fn log2_adb233() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_adb233();
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.dxc.hlsl
index 373d344..d811763 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log2_adb233() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log2_adb233()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.fxc.hlsl
index 373d344..d811763 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 log2_adb233() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(log2_adb233()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.glsl
index 46a0e67..3c2e59b 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 log2_adb233() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 log2_adb233() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.wgsl
index f052d5a..0f13bf9 100644
--- a/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/adb233.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn log2_adb233() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_adb233();
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl b/test/tint/builtins/gen/var/log2/aea659.wgsl
index 35e4351..90cf1dce 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn log2(vec<2, f32>) -> vec<2, f32>
 fn log2_aea659() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_aea659();
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.dxc.hlsl
index dbfbb11..df72d42 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log2_aea659() {
   float2 arg_0 = (1.0f).xx;
   float2 res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log2_aea659()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.fxc.hlsl
index dbfbb11..df72d42 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 log2_aea659() {
   float2 arg_0 = (1.0f).xx;
   float2 res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(log2_aea659()));
   return;
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.glsl
index 94da420..014b7b3 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log2_aea659() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 log2_aea659() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.wgsl
index e030978..5caa9a3 100644
--- a/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/aea659.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn log2_aea659() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_aea659();
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl
index 3d7698e..792bb2e 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn log2(vec<2, f16>) -> vec<2, f16>
 fn log2_fb9f0b() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = log2(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_fb9f0b();
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.dxc.hlsl
index 78bda56..99ec3dc 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> log2_fb9f0b() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = log2(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, log2_fb9f0b());
   return;
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.glsl
index ef1f809..f07887a 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log2_fb9f0b() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 log2_fb9f0b() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = log2(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.wgsl
index c3a673c..c50abc5 100644
--- a/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/log2/fb9f0b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn log2_fb9f0b() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = log2(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = log2_fb9f0b();
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl
index 4fa59f3..9e3c091 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn max(u32, u32) -> u32
 fn max_0c0aae() -> u32{
   var arg_0 = 1u;
@@ -42,8 +45,6 @@
   var res: u32 = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_0c0aae();
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.dxc.hlsl
index 212783e..a986262 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint max_0c0aae() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_0c0aae()));
   return;
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.fxc.hlsl
index 212783e..a986262 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint max_0c0aae() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_0c0aae()));
   return;
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.glsl
index 7551b26..d027ced 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint max_0c0aae() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint max_0c0aae() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.wgsl
index fcb4683..96e2b71 100644
--- a/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/0c0aae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn max_0c0aae() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_0c0aae();
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl b/test/tint/builtins/gen/var/max/111ac0.wgsl
index ad4160b..49d9123 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn max(f16, f16) -> f16
 fn max_111ac0() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_111ac0();
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.dxc.hlsl
index 7363c87..01ec94b 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t max_111ac0() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, max_111ac0());
   return;
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.glsl
index cb9d555..5e95700 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t max_111ac0() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t max_111ac0() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.wgsl
index e655256..3f938c5 100644
--- a/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/111ac0.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn max_111ac0() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_111ac0();
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl b/test/tint/builtins/gen/var/max/25eafe.wgsl
index afed9a7..ecb5159 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn max(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
 fn max_25eafe() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -42,8 +45,6 @@
   var res: vec3<i32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_25eafe();
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.dxc.hlsl
index 5eec564..e8b590f 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 max_25eafe() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_25eafe()));
   return;
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.fxc.hlsl
index 5eec564..e8b590f 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 max_25eafe() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_25eafe()));
   return;
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.glsl
index 6c720d5..c9b821b 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 max_25eafe() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 max_25eafe() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.wgsl
index a303945..53469da 100644
--- a/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/25eafe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn max_25eafe() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_25eafe();
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl b/test/tint/builtins/gen/var/max/320815.wgsl
index b87b1bb..d99dbb7 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn max(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
 fn max_320815() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -42,8 +45,6 @@
   var res: vec2<u32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_320815();
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.dxc.hlsl
index 423a883..8a0ab53 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 max_320815() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_320815()));
   return;
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.fxc.hlsl
index 423a883..8a0ab53 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 max_320815() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_320815()));
   return;
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.glsl
index e9f103c..42e6c4a 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 max_320815() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 max_320815() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/320815.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/320815.wgsl.expected.wgsl
index 1f68e52..9dccb93 100644
--- a/test/tint/builtins/gen/var/max/320815.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/320815.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn max_320815() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_320815();
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl b/test/tint/builtins/gen/var/max/34956e.wgsl
index 7766e98..3900a49 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn max(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn max_34956e() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_34956e();
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.dxc.hlsl
index e7525e0..e476939 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> max_34956e() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, max_34956e());
   return;
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.glsl
index 406bda4..ab9ad4d 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 max_34956e() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 max_34956e() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.wgsl
index 6dd0eb9..2ca9050 100644
--- a/test/tint/builtins/gen/var/max/34956e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/34956e.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn max_34956e() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_34956e();
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl b/test/tint/builtins/gen/var/max/445169.wgsl
index 09b2d3c..97efce2 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn max(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn max_445169() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_445169();
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.dxc.hlsl
index 0a1610d..d5b9ff4 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> max_445169() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, max_445169());
   return;
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.glsl
index 65e115c..af44985 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 max_445169() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 max_445169() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/445169.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/445169.wgsl.expected.wgsl
index 87ad8f4..179d1cb 100644
--- a/test/tint/builtins/gen/var/max/445169.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/445169.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn max_445169() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_445169();
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl b/test/tint/builtins/gen/var/max/44a39d.wgsl
index 329046b..e5bc899 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn max(f32, f32) -> f32
 fn max_44a39d() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_44a39d();
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.dxc.hlsl
index 285d5c0..bda8c4d 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float max_44a39d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_44a39d()));
   return;
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.fxc.hlsl
index 285d5c0..bda8c4d 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float max_44a39d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_44a39d()));
   return;
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.glsl
index 07ce6ce..2f552fd 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float max_44a39d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float max_44a39d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.wgsl
index 3f2311f..58558f6 100644
--- a/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/44a39d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn max_44a39d() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_44a39d();
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl b/test/tint/builtins/gen/var/max/453e04.wgsl
index 8ac2d21..26cb323 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn max(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
 fn max_453e04() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -42,8 +45,6 @@
   var res: vec4<u32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_453e04();
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.dxc.hlsl
index 0892818..e7663aa 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 max_453e04() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_453e04()));
   return;
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.fxc.hlsl
index 0892818..e7663aa 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 max_453e04() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_453e04()));
   return;
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.glsl
index 144dd27..9082539 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 max_453e04() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 max_453e04() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.wgsl
index 43b897a..caff568 100644
--- a/test/tint/builtins/gen/var/max/453e04.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/453e04.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn max_453e04() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_453e04();
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl b/test/tint/builtins/gen/var/max/462050.wgsl
index 680fc89..61ef8f7 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn max(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn max_462050() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_462050();
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.dxc.hlsl
index 922cac3..ce77714 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 max_462050() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_462050()));
   return;
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.fxc.hlsl
index 922cac3..ce77714 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 max_462050() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_462050()));
   return;
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.glsl
index 8dc03c9..f4a8d20 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 max_462050() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 max_462050() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/462050.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/462050.wgsl.expected.wgsl
index 9c21551..93d36d4 100644
--- a/test/tint/builtins/gen/var/max/462050.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/462050.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn max_462050() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_462050();
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl b/test/tint/builtins/gen/var/max/4883ac.wgsl
index 76a122f..399ac8d 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn max(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn max_4883ac() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_4883ac();
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.dxc.hlsl
index b84c681..e5635f2 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 max_4883ac() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_4883ac()));
   return;
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.fxc.hlsl
index b84c681..e5635f2 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 max_4883ac() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_4883ac()));
   return;
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.glsl
index 0fce29d..5b27b94 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 max_4883ac() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 max_4883ac() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.wgsl
index 74ad6b8..1c3e240 100644
--- a/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/4883ac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn max_4883ac() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_4883ac();
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl
index 41f9f6e..d520701 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn max(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
 fn max_85e6bc() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -42,8 +45,6 @@
   var res: vec4<i32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_85e6bc();
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.dxc.hlsl
index 654f94c..5d83550 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 max_85e6bc() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_85e6bc()));
   return;
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.fxc.hlsl
index 654f94c..5d83550 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 max_85e6bc() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_85e6bc()));
   return;
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.glsl
index 391275d..08d4ed6 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 max_85e6bc() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 max_85e6bc() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.wgsl
index 8e7af53..32a7d3f 100644
--- a/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/85e6bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn max_85e6bc() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_85e6bc();
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl b/test/tint/builtins/gen/var/max/a93419.wgsl
index fcd7a38..0f9cfb3 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn max(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn max_a93419() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_a93419();
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.dxc.hlsl
index b822a65..66381b8 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 max_a93419() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_a93419()));
   return;
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.fxc.hlsl
index b822a65..66381b8 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 max_a93419() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(max_a93419()));
   return;
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.glsl
index 2012bac..12e19b8 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 max_a93419() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 max_a93419() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.wgsl
index 4bd3003..e1f00e1 100644
--- a/test/tint/builtins/gen/var/max/a93419.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/a93419.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn max_a93419() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_a93419();
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl
index 78d44b3..3e4327c 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn max(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
 fn max_b1b73a() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -42,8 +45,6 @@
   var res: vec3<u32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_b1b73a();
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.dxc.hlsl
index 4041498..734d76e 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 max_b1b73a() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_b1b73a()));
   return;
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.fxc.hlsl
index 4041498..734d76e 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 max_b1b73a() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(max_b1b73a()));
   return;
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.glsl
index 47ca66a..526c586 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 max_b1b73a() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 max_b1b73a() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.wgsl
index 0ab8359..0671768 100644
--- a/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/b1b73a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn max_b1b73a() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_b1b73a();
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl
index f4e3a04..3cc0486 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn max(i32, i32) -> i32
 fn max_ce7c30() -> i32{
   var arg_0 = 1i;
@@ -42,8 +45,6 @@
   var res: i32 = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_ce7c30();
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.dxc.hlsl
index 49d115c..12f0b27 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int max_ce7c30() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_ce7c30()));
   return;
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.fxc.hlsl
index 49d115c..12f0b27 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int max_ce7c30() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(max_ce7c30()));
   return;
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.glsl
index 8eeb14f..fd86c3c 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int max_ce7c30() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int max_ce7c30() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.wgsl
index bd7cf94..954c91f 100644
--- a/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/ce7c30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn max_ce7c30() -> i32 {
   var arg_0 = 1i;
   var arg_1 = 1i;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_ce7c30();
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl
index 88c8e37..8b72026 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn max(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn max_e14f2b() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e14f2b();
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.dxc.hlsl
index 424847b..029f40c 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> max_e14f2b() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, max_e14f2b());
   return;
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.glsl
index dd583d1..39d12a4 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 max_e14f2b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 max_e14f2b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.wgsl
index 8ef15dd..7566cee 100644
--- a/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/e14f2b.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn max_e14f2b() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e14f2b();
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl b/test/tint/builtins/gen/var/max/e8192f.wgsl
index 3b4452e7c..bc6c72e 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn max(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
 fn max_e8192f() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -42,8 +45,6 @@
   var res: vec2<i32> = max(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e8192f();
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.dxc.hlsl
index 29f1691..f311d00 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 max_e8192f() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_e8192f()));
   return;
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.fxc.hlsl
index 29f1691..f311d00 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 max_e8192f() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(max_e8192f()));
   return;
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.glsl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.glsl
index 288d2c6..a2d4977 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 max_e8192f() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 max_e8192f() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.wgsl
index 69cab83e..75c981a 100644
--- a/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/max/e8192f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn max_e8192f() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = max_e8192f();
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl
index f80adb9..5fefcba 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn min(vec<2, i32>, vec<2, i32>) -> vec<2, i32>
 fn min_03c7e3() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -42,8 +45,6 @@
   var res: vec2<i32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_03c7e3();
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.dxc.hlsl
index 3673201..7074458 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 min_03c7e3() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_03c7e3()));
   return;
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.fxc.hlsl
index 3673201..7074458 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 min_03c7e3() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_03c7e3()));
   return;
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl
index ecabfd9..884448f 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 min_03c7e3() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 min_03c7e3() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.wgsl
index 0021beb..c6d6186 100644
--- a/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/03c7e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn min_03c7e3() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_03c7e3();
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl b/test/tint/builtins/gen/var/min/0dc614.wgsl
index c1d6003..8b094a7 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn min(vec<4, u32>, vec<4, u32>) -> vec<4, u32>
 fn min_0dc614() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -42,8 +45,6 @@
   var res: vec4<u32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_0dc614();
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.dxc.hlsl
index 617fcb9..9e61c98 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 min_0dc614() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_0dc614()));
   return;
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.fxc.hlsl
index 617fcb9..9e61c98 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 min_0dc614() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_0dc614()));
   return;
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.glsl
index 6150edb..f885c5e 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 min_0dc614() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 min_0dc614() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.wgsl
index f6937f3..a547a20 100644
--- a/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/0dc614.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn min_0dc614() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_0dc614();
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl b/test/tint/builtins/gen/var/min/3941e1.wgsl
index e4187c0..b48bd65 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn min(vec<4, i32>, vec<4, i32>) -> vec<4, i32>
 fn min_3941e1() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -42,8 +45,6 @@
   var res: vec4<i32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_3941e1();
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.dxc.hlsl
index e0c3c69..b16cefd 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 min_3941e1() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_3941e1()));
   return;
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.fxc.hlsl
index e0c3c69..b16cefd 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 min_3941e1() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_3941e1()));
   return;
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.glsl
index af31cda..61f9860 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 min_3941e1() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 min_3941e1() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.wgsl
index 82307c4..5ead25c 100644
--- a/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/3941e1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn min_3941e1() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_3941e1();
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl
index 2cf2d63..8b6e1f0 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn min(u32, u32) -> u32
 fn min_46c5d3() -> u32{
   var arg_0 = 1u;
@@ -42,8 +45,6 @@
   var res: u32 = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_46c5d3();
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.dxc.hlsl
index c7b4a02..cd5ffa4 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint min_46c5d3() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_46c5d3()));
   return;
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.fxc.hlsl
index c7b4a02..cd5ffa4 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint min_46c5d3() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_46c5d3()));
   return;
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.glsl
index a947e59..7fefa34 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint min_46c5d3() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint min_46c5d3() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.wgsl
index 9ecb254..856e05b 100644
--- a/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/46c5d3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn min_46c5d3() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_46c5d3();
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl b/test/tint/builtins/gen/var/min/7c710a.wgsl
index 5e6565d..9daee35 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn min(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn min_7c710a() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_7c710a();
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.dxc.hlsl
index 1250494..241c978 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> min_7c710a() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, min_7c710a());
   return;
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.glsl
index 62565ef..dd9b723 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 min_7c710a() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 min_7c710a() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.wgsl
index e425b6f..c8b66cf 100644
--- a/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/7c710a.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn min_7c710a() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_7c710a();
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl b/test/tint/builtins/gen/var/min/82b28f.wgsl
index e382639..5b6dba8 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn min(vec<2, u32>, vec<2, u32>) -> vec<2, u32>
 fn min_82b28f() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -42,8 +45,6 @@
   var res: vec2<u32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_82b28f();
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.dxc.hlsl
index b0f346f..8f1e698 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 min_82b28f() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_82b28f()));
   return;
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.fxc.hlsl
index b0f346f..8f1e698 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 min_82b28f() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_82b28f()));
   return;
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.glsl
index ad172cc..b1fe3b9 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 min_82b28f() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 min_82b28f() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.wgsl
index 6f1b39b..52b7bd9 100644
--- a/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/82b28f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn min_82b28f() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_82b28f();
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl
index ff39955..1d0e14a 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn min(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn min_93cfc4() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_93cfc4();
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.dxc.hlsl
index d780560..a99b662 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 min_93cfc4() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_93cfc4()));
   return;
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.fxc.hlsl
index d780560..a99b662 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 min_93cfc4() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_93cfc4()));
   return;
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.glsl
index 1b802c8..ae81ef5 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 min_93cfc4() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 min_93cfc4() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.wgsl
index 307c585..042b626c 100644
--- a/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/93cfc4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn min_93cfc4() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_93cfc4();
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl b/test/tint/builtins/gen/var/min/a45171.wgsl
index 7c0a594..78c9c2f 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn min(vec<3, i32>, vec<3, i32>) -> vec<3, i32>
 fn min_a45171() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -42,8 +45,6 @@
   var res: vec3<i32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_a45171();
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.dxc.hlsl
index 0d4d368..e484c60 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 min_a45171() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_a45171()));
   return;
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.fxc.hlsl
index 0d4d368..e484c60 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 min_a45171() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_a45171()));
   return;
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.glsl
index 92c3c1e..5b893e4 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 min_a45171() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 min_a45171() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.wgsl
index 96c80aa..1049064 100644
--- a/test/tint/builtins/gen/var/min/a45171.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/a45171.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn min_a45171() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_a45171();
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl
index 3da49b0..9b0bfd5 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn min(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn min_aa28ad() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_aa28ad();
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.dxc.hlsl
index a6ec91f..e334948 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 min_aa28ad() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_aa28ad()));
   return;
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.fxc.hlsl
index a6ec91f..e334948 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 min_aa28ad() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(min_aa28ad()));
   return;
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.glsl
index 31fe8fc..13d4759 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 min_aa28ad() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 min_aa28ad() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.wgsl
index af57670..64cc5cb 100644
--- a/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/aa28ad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn min_aa28ad() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_aa28ad();
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl
index 6df8b66..3e53325 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn min(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn min_ab0acd() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ab0acd();
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.dxc.hlsl
index 28faded..239a5c6 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> min_ab0acd() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, min_ab0acd());
   return;
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.glsl
index 732654f..de3365f 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 min_ab0acd() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 min_ab0acd() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.wgsl
index a3f5867..d116870 100644
--- a/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/ab0acd.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn min_ab0acd() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ab0acd();
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl
index 892a14f..ef59733 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn min(f16, f16) -> f16
 fn min_ac84d6() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ac84d6();
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.dxc.hlsl
index 13716a1..a68dee4 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t min_ac84d6() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, min_ac84d6());
   return;
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.glsl
index f6d5d0f..eda392e 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t min_ac84d6() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t min_ac84d6() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.wgsl
index 23b5cd4..ac0c0ec 100644
--- a/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/ac84d6.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn min_ac84d6() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_ac84d6();
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl b/test/tint/builtins/gen/var/min/af326d.wgsl
index cc47bb7..6ca6b04 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn min(f32, f32) -> f32
 fn min_af326d() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_af326d();
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.dxc.hlsl
index e1bbc49..04251f5 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float min_af326d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_af326d()));
   return;
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.fxc.hlsl
index e1bbc49..04251f5 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float min_af326d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_af326d()));
   return;
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.glsl
index 8472593..cd52a1f 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float min_af326d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float min_af326d() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.wgsl
index e9ea116..dac9f5c 100644
--- a/test/tint/builtins/gen/var/min/af326d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/af326d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn min_af326d() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_af326d();
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl
index 1125c6c..4a8dcc5 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn min(vec<3, u32>, vec<3, u32>) -> vec<3, u32>
 fn min_c70bb7() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -42,8 +45,6 @@
   var res: vec3<u32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c70bb7();
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.dxc.hlsl
index 259a3ac..6874bc4 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 min_c70bb7() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_c70bb7()));
   return;
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.fxc.hlsl
index 259a3ac..6874bc4 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 min_c70bb7() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(min_c70bb7()));
   return;
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.glsl
index 13d2cbf..21850ae 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 min_c70bb7() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 min_c70bb7() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.wgsl
index 41b494b..01c404a 100644
--- a/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/c70bb7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn min_c70bb7() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c70bb7();
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl b/test/tint/builtins/gen/var/min/c73147.wgsl
index b8831b9..c16c05c 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn min(i32, i32) -> i32
 fn min_c73147() -> i32{
   var arg_0 = 1i;
@@ -42,8 +45,6 @@
   var res: i32 = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c73147();
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.dxc.hlsl
index 51de159..80e73d9 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int min_c73147() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_c73147()));
   return;
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.fxc.hlsl
index 51de159..80e73d9 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int min_c73147() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(min_c73147()));
   return;
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.glsl
index d3e2083..4995b14 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int min_c73147() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int min_c73147() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.wgsl
index a4d701a..31f78a9 100644
--- a/test/tint/builtins/gen/var/min/c73147.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/c73147.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn min_c73147() -> i32 {
   var arg_0 = 1i;
   var arg_1 = 1i;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c73147();
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl
index 82bc916..15d4c77 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn min(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn min_c76fa6() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c76fa6();
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.dxc.hlsl
index 7b30e45..ff63b24 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 min_c76fa6() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_c76fa6()));
   return;
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.fxc.hlsl
index 7b30e45..ff63b24 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 min_c76fa6() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(min_c76fa6()));
   return;
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.glsl
index 3635503..8ff0915 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 min_c76fa6() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 min_c76fa6() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.wgsl
index 2dec9d6..e488730 100644
--- a/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/c76fa6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn min_c76fa6() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_c76fa6();
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl b/test/tint/builtins/gen/var/min/e780f9.wgsl
index 429fe63..06ba6ae 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn min(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn min_e780f9() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = min(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_e780f9();
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.dxc.hlsl
index b112f1a..4af8a0b 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> min_e780f9() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, min_e780f9());
   return;
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.glsl
index 14d7d00..869fbe2 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 min_e780f9() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 min_e780f9() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.wgsl
index ded2f5b..9e6329e 100644
--- a/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/min/e780f9.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn min_e780f9() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = min_e780f9();
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl
index e842fe3..86084f8 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn mix(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn mix_0c8c33() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_0c8c33();
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.dxc.hlsl
index 8977834..8a5a81d 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_0c8c33() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_0c8c33()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.fxc.hlsl
index 8977834..8a5a81d 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_0c8c33() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_0c8c33()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.glsl
index f64dcdf..74d9c7a 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 mix_0c8c33() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 mix_0c8c33() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.wgsl
index 0c153c2..5641972 100644
--- a/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/0c8c33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn mix_0c8c33() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_0c8c33();
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl
index 2c956e2..3503f39 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn mix(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
 fn mix_1faeb1() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_1faeb1();
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.dxc.hlsl
index d9e4289..2e2975b 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_1faeb1() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_1faeb1()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.fxc.hlsl
index d9e4289..2e2975b 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_1faeb1() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_1faeb1()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.glsl
index 82a6fd9..479e955 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_1faeb1() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_1faeb1() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.wgsl
index c07253b..d9f414a 100644
--- a/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/1faeb1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn mix_1faeb1() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_1faeb1();
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl
index 6d08e96..3f1c654 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn mix(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
 fn mix_2fadab() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_2fadab();
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.dxc.hlsl
index 875dd19..74dbfe1 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_2fadab() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_2fadab()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.fxc.hlsl
index 875dd19..74dbfe1 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_2fadab() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_2fadab()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.glsl
index 7265b20..b6343b6 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_2fadab() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_2fadab() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.wgsl
index 61d2293..f643795 100644
--- a/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/2fadab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn mix_2fadab() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_2fadab();
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl b/test/tint/builtins/gen/var/mix/315264.wgsl
index 28f6461..86649cc 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn mix(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
 fn mix_315264() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_315264();
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.dxc.hlsl
index 8099902..3b20a4d 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_315264() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_315264()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.fxc.hlsl
index 8099902..3b20a4d 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 mix_315264() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(mix_315264()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.glsl
index 8231fe3..6cc20ef 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 mix_315264() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 mix_315264() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.wgsl
index dacd605..17b9b93 100644
--- a/test/tint/builtins/gen/var/mix/315264.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/315264.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn mix_315264() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_315264();
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl
index 3d3c1d3..b3e577b 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn mix(f16, f16, f16) -> f16
 fn mix_38cbbb() -> f16{
   var arg_0 = 1.h;
@@ -48,8 +51,6 @@
   var res: f16 = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_38cbbb();
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.dxc.hlsl
index da3c293..a198830 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t mix_38cbbb() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, mix_38cbbb());
   return;
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.glsl
index 56151d2..d955553 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t mix_38cbbb() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t mix_38cbbb() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.wgsl
index 3c0811c..e5e5008 100644
--- a/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/38cbbb.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn mix_38cbbb() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_38cbbb();
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl
index 24f02f5..e156c3f 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn mix(f32, f32, f32) -> f32
 fn mix_4f0b5e() -> f32{
   var arg_0 = 1.f;
@@ -43,8 +46,6 @@
   var res: f32 = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_4f0b5e();
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.dxc.hlsl
index fe0b8b5..e6c0202 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float mix_4f0b5e() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(mix_4f0b5e()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.fxc.hlsl
index fe0b8b5..e6c0202 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float mix_4f0b5e() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(mix_4f0b5e()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.glsl
index 8cad178..5fc83da 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float mix_4f0b5e() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float mix_4f0b5e() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.wgsl
index d45a3d6..d4998ad 100644
--- a/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/4f0b5e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn mix_4f0b5e() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_4f0b5e();
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl
index 7ce5620..8455e05 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn mix(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn mix_63f2fd() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_63f2fd();
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.dxc.hlsl
index dcff51b..186895f 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> mix_63f2fd() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, mix_63f2fd());
   return;
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.glsl
index 6416910..59f182d 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_63f2fd() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_63f2fd() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.wgsl
index dd1a55a..6de4a25 100644
--- a/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/63f2fd.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn mix_63f2fd() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_63f2fd();
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl
index 22aeaed..886a2ff 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn mix(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn mix_6f8adc() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_6f8adc();
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.dxc.hlsl
index 13102c3..04f9c53 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_6f8adc() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_6f8adc()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.fxc.hlsl
index 13102c3..04f9c53 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 mix_6f8adc() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(mix_6f8adc()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.glsl
index 4962f85..9ff7abe 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_6f8adc() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 mix_6f8adc() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.wgsl
index 86df4a5..ded49c1 100644
--- a/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/6f8adc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn mix_6f8adc() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_6f8adc();
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl
index 9af77fb..ebf1a44 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn mix(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn mix_98ee3e() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_98ee3e();
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.dxc.hlsl
index 28a606a..9e59ada 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> mix_98ee3e() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, mix_98ee3e());
   return;
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.glsl
index a61b8e2..7540d6d 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_98ee3e() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_98ee3e() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.wgsl
index 6b3e373..cadcc33 100644
--- a/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/98ee3e.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn mix_98ee3e() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_98ee3e();
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl
index 6324c07..b165453 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn mix(vec<3, f16>, vec<3, f16>, f16) -> vec<3, f16>
 fn mix_c1aec6() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c1aec6();
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.dxc.hlsl
index 3ed0563..041c3e1 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> mix_c1aec6() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, mix_c1aec6());
   return;
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.glsl
index 0bffa68..9dd49f6 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_c1aec6() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 mix_c1aec6() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.wgsl
index ca8d63f..ee2ef0e 100644
--- a/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/c1aec6.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn mix_c1aec6() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c1aec6();
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl
index 75cbd5a..e09575a 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn mix(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn mix_c37ede() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c37ede();
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.dxc.hlsl
index 2f9eb52..c21d1a8 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_c37ede() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_c37ede()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.fxc.hlsl
index 2f9eb52..c21d1a8 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 mix_c37ede() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(mix_c37ede()));
   return;
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.glsl
index ea7df50..74a09d0 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_c37ede() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 mix_c37ede() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.wgsl
index a69e3fc..bbd6d01 100644
--- a/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/c37ede.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn mix_c37ede() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_c37ede();
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl
index 944d329..4e4f0ff 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn mix(vec<2, f16>, vec<2, f16>, f16) -> vec<2, f16>
 fn mix_e46a83() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_e46a83();
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.dxc.hlsl
index d28c984..5ac58d9 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> mix_e46a83() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, mix_e46a83());
   return;
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.glsl
index 815379a..709847a 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_e46a83() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 mix_e46a83() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.wgsl
index 40f3352..e0cd883 100644
--- a/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/e46a83.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn mix_e46a83() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_e46a83();
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl
index 7f4605e..d20e569 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn mix(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn mix_ee2468() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_ee2468();
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.dxc.hlsl
index e1fafe4..714f74d 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> mix_ee2468() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, mix_ee2468());
   return;
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.glsl
index a1dd890..c3854a9 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_ee2468() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_ee2468() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.wgsl
index 723854f..b3ac691 100644
--- a/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/ee2468.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn mix_ee2468() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_ee2468();
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl
index 0686b00..8a724a7 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn mix(vec<4, f16>, vec<4, f16>, f16) -> vec<4, f16>
 fn mix_f1a543() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = mix(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_f1a543();
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.dxc.hlsl
index 3f4cf90..d21b293 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> mix_f1a543() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, mix_f1a543());
   return;
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.glsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.glsl
index f4d6910..239f109 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_f1a543() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 mix_f1a543() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.wgsl b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.wgsl
index ed8eea9..c00be77 100644
--- a/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/mix/f1a543.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn mix_f1a543() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = mix_f1a543();
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl
index d9e92ef..076795d 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn normalize(vec<3, f16>) -> vec<3, f16>
 fn normalize_39d5ec() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = normalize(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_39d5ec();
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.dxc.hlsl
index 351b4ef..f7635b8 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> normalize_39d5ec() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, normalize_39d5ec());
   return;
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.glsl
index 63c5ee6..cba2b40 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 normalize_39d5ec() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 normalize_39d5ec() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.wgsl
index ed56717..2348fd6 100644
--- a/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/normalize/39d5ec.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn normalize_39d5ec() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = normalize(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_39d5ec();
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl
index 12e7a0e4..76632d7 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn normalize(vec<3, f32>) -> vec<3, f32>
 fn normalize_64d8c0() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = normalize(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_64d8c0();
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.dxc.hlsl
index b49fa47..ace1aff 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 normalize_64d8c0() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
   return;
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.fxc.hlsl
index b49fa47..ace1aff 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 normalize_64d8c0() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(normalize_64d8c0()));
   return;
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.glsl
index fb3c260..0b9eaa8 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 normalize_64d8c0() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 normalize_64d8c0() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.wgsl
index edf933c..d71946b 100644
--- a/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/normalize/64d8c0.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn normalize_64d8c0() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = normalize(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_64d8c0();
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl
index 376e30a..5010745 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn normalize(vec<2, f16>) -> vec<2, f16>
 fn normalize_7990f3() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = normalize(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_7990f3();
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.dxc.hlsl
index bc75a3b..388ef2c 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> normalize_7990f3() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, normalize_7990f3());
   return;
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.glsl
index a806b26..a260c64 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 normalize_7990f3() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 normalize_7990f3() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.wgsl
index 12f8533..c4ef37c 100644
--- a/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/normalize/7990f3.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn normalize_7990f3() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = normalize(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_7990f3();
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl
index dcdf67a..e828c1f 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn normalize(vec<4, f32>) -> vec<4, f32>
 fn normalize_9a0aab() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = normalize(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_9a0aab();
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.dxc.hlsl
index 5cdc527..1f8a2ac 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 normalize_9a0aab() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
   return;
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.fxc.hlsl
index 5cdc527..1f8a2ac 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 normalize_9a0aab() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(normalize_9a0aab()));
   return;
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.glsl
index 0bbed87..5873c51 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 normalize_9a0aab() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 normalize_9a0aab() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.wgsl
index ff9e12a..1837a7e 100644
--- a/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/normalize/9a0aab.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn normalize_9a0aab() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = normalize(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_9a0aab();
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl
index d60d87a..474be22 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn normalize(vec<4, f16>) -> vec<4, f16>
 fn normalize_b8cb8d() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = normalize(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_b8cb8d();
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.dxc.hlsl
index 3168ada..2f3eb2d 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> normalize_b8cb8d() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, normalize_b8cb8d());
   return;
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.glsl
index 0ac1e80..f227d7f 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 normalize_b8cb8d() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 normalize_b8cb8d() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.wgsl
index ac72a9c..cf1bdb9 100644
--- a/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/normalize/b8cb8d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn normalize_b8cb8d() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = normalize(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_b8cb8d();
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl
index 263336f..868a6b2 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn normalize(vec<2, f32>) -> vec<2, f32>
 fn normalize_fc2ef1() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = normalize(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_fc2ef1();
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.dxc.hlsl
index f62a5c7..06ceabb 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 normalize_fc2ef1() {
   float2 arg_0 = (1.0f).xx;
   float2 res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
   return;
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.fxc.hlsl
index f62a5c7..06ceabb 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 normalize_fc2ef1() {
   float2 arg_0 = (1.0f).xx;
   float2 res = normalize(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(normalize_fc2ef1()));
   return;
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.glsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.glsl
index 828b3fe..97bad66 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 normalize_fc2ef1() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 normalize_fc2ef1() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = normalize(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.wgsl
index 228d994..0a72c90 100644
--- a/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/normalize/fc2ef1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn normalize_fc2ef1() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = normalize(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = normalize_fc2ef1();
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl
index d75e74b..7dd2775 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack2x16float(vec2<f32>) -> u32
 fn pack2x16float_0e97b3() -> u32{
   var arg_0 = vec2<f32>(1.f);
   var res: u32 = pack2x16float(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16float_0e97b3();
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
index 3caebee..cf52b39 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return i.x | (i.y << 16);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16float_0e97b3() {
   float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16float(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16float_0e97b3()));
   return;
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
index 3caebee..cf52b39 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return i.x | (i.y << 16);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16float_0e97b3() {
   float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16float(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16float_0e97b3()));
   return;
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl
index 3b06507..08a575f 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16float_0e97b3() {
   vec2 arg_0 = vec2(1.0f);
   uint res = packHalf2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16float_0e97b3() {
   vec2 arg_0 = vec2(1.0f);
   uint res = packHalf2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl
index bab6084..4ab3c6a 100644
--- a/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16float/0e97b3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack2x16float_0e97b3() -> u32 {
   var arg_0 = vec2<f32>(1.0f);
   var res : u32 = pack2x16float(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16float_0e97b3();
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl
index 276600a..661a63f 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack2x16snorm(vec2<f32>) -> u32
 fn pack2x16snorm_6c169b() -> u32{
   var arg_0 = vec2<f32>(1.f);
   var res: u32 = pack2x16snorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16snorm_6c169b();
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
index ddde5fe..80be44e 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asuint(i.x | i.y << 16);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16snorm_6c169b() {
   float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16snorm_6c169b()));
   return;
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
index ddde5fe..80be44e 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return asuint(i.x | i.y << 16);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16snorm_6c169b() {
   float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16snorm_6c169b()));
   return;
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl
index ad55328..f59a935 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16snorm_6c169b() {
   vec2 arg_0 = vec2(1.0f);
   uint res = packSnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16snorm_6c169b() {
   vec2 arg_0 = vec2(1.0f);
   uint res = packSnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl
index a317841..fd65e24 100644
--- a/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16snorm/6c169b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack2x16snorm_6c169b() -> u32 {
   var arg_0 = vec2<f32>(1.0f);
   var res : u32 = pack2x16snorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16snorm_6c169b();
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl
index f23fc72..4cc65a4 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack2x16unorm(vec2<f32>) -> u32
 fn pack2x16unorm_0f08e4() -> u32{
   var arg_0 = vec2<f32>(1.f);
   var res: u32 = pack2x16unorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16unorm_0f08e4();
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
index 1785fa7..bf75cd0 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return (i.x | i.y << 16);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16unorm_0f08e4() {
   float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16unorm_0f08e4()));
   return;
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
index 1785fa7..bf75cd0 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return (i.x | i.y << 16);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack2x16unorm_0f08e4() {
   float2 arg_0 = (1.0f).xx;
   uint res = tint_pack2x16unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack2x16unorm_0f08e4()));
   return;
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl
index 8f8b4be..f2fae5b 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16unorm_0f08e4() {
   vec2 arg_0 = vec2(1.0f);
   uint res = packUnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack2x16unorm_0f08e4() {
   vec2 arg_0 = vec2(1.0f);
   uint res = packUnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl
index f6d1cd11..5b618ae 100644
--- a/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack2x16unorm/0f08e4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack2x16unorm_0f08e4() -> u32 {
   var arg_0 = vec2<f32>(1.0f);
   var res : u32 = pack2x16unorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack2x16unorm_0f08e4();
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl
index 2512479..9a2e06d 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4x8snorm(vec4<f32>) -> u32
 fn pack4x8snorm_4d22e7() -> u32{
   var arg_0 = vec4<f32>(1.f);
   var res: u32 = pack4x8snorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8snorm_4d22e7();
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
index 8f11992..0f33c22 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return asuint(i.x | i.y << 8 | i.z << 16 | i.w << 24);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8snorm_4d22e7() {
   float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8snorm_4d22e7()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
index 8f11992..0f33c22 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return asuint(i.x | i.y << 8 | i.z << 16 | i.w << 24);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8snorm_4d22e7() {
   float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8snorm_4d22e7()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl
index e54450e..a66240f 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8snorm_4d22e7() {
   vec4 arg_0 = vec4(1.0f);
   uint res = packSnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8snorm_4d22e7() {
   vec4 arg_0 = vec4(1.0f);
   uint res = packSnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl
index e23aa5e..144bd95 100644
--- a/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8snorm/4d22e7.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4x8snorm_4d22e7() -> u32 {
   var arg_0 = vec4<f32>(1.0f);
   var res : u32 = pack4x8snorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8snorm_4d22e7();
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl
index 62d00c0..b468d7b 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4x8unorm(vec4<f32>) -> u32
 fn pack4x8unorm_95c456() -> u32{
   var arg_0 = vec4<f32>(1.f);
   var res: u32 = pack4x8unorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8unorm_95c456();
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
index 3ce5a32..5ab71a4 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return (i.x | i.y << 8 | i.z << 16 | i.w << 24);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8unorm_95c456() {
   float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8unorm_95c456()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
index 3ce5a32..5ab71a4 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return (i.x | i.y << 8 | i.z << 16 | i.w << 24);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4x8unorm_95c456() {
   float4 arg_0 = (1.0f).xxxx;
   uint res = tint_pack4x8unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4x8unorm_95c456()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl
index 0ef9af7..3f0e407 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8unorm_95c456() {
   vec4 arg_0 = vec4(1.0f);
   uint res = packUnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4x8unorm_95c456() {
   vec4 arg_0 = vec4(1.0f);
   uint res = packUnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl
index 539ed04..4d4badd 100644
--- a/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4x8unorm/95c456.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4x8unorm_95c456() -> u32 {
   var arg_0 = vec4<f32>(1.0f);
   var res : u32 = pack4x8unorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4x8unorm_95c456();
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl
index 937f49e..4da6b54 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl
@@ -36,14 +36,15 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xI8(vec4<i32>) -> u32
 fn pack4xI8_bfce01() -> u32{
   var arg_0 = vec4<i32>(1i);
   var res: u32 = pack4xI8(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8_bfce01();
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.dxc.hlsl
index 405ff7b..da741e0 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8_bfce01() {
   int4 arg_0 = (1).xxxx;
   uint res = uint(pack_s8(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8_bfce01()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.fxc.hlsl
index f06661b..e67e4f3 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return dot(a_u8, (1u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8_bfce01() {
   int4 arg_0 = (1).xxxx;
   uint res = tint_pack_4xi8(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8_bfce01()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.glsl
index ed3dd15..8e0b764 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8_bfce01() {
   ivec4 arg_0 = ivec4(1);
   uint res = tint_pack_4xi8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -47,16 +47,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8_bfce01() {
   ivec4 arg_0 = ivec4(1);
   uint res = tint_pack_4xi8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.wgsl
index 10f3036..c115ad5 100644
--- a/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4xI8/bfce01.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xI8_bfce01() -> u32 {
   var arg_0 = vec4<i32>(1i);
   var res : u32 = pack4xI8(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8_bfce01();
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl
index 9c86c97..08a1454 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl
@@ -36,14 +36,15 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xI8Clamp(vec4<i32>) -> u32
 fn pack4xI8Clamp_e42b2a() -> u32{
   var arg_0 = vec4<i32>(1i);
   var res: u32 = pack4xI8Clamp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8Clamp_e42b2a();
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl
index 7665dbd..80eecf6 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8Clamp_e42b2a() {
   int4 arg_0 = (1).xxxx;
   uint res = uint(pack_clamp_s8(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8Clamp_e42b2a()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl
index fa1f0dc..96d3cf6 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.fxc.hlsl
@@ -5,14 +5,14 @@
   return dot(a_u8, (1u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xI8Clamp_e42b2a() {
   int4 arg_0 = (1).xxxx;
   uint res = tint_pack_4xi8_clamp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xI8Clamp_e42b2a()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.glsl
index 1e0b23c..83fc5ab 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.glsl
@@ -13,16 +13,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8Clamp_e42b2a() {
   ivec4 arg_0 = ivec4(1);
   uint res = tint_pack_4xi8_clamp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -49,16 +49,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xI8Clamp_e42b2a() {
   ivec4 arg_0 = ivec4(1);
   uint res = tint_pack_4xi8_clamp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl
index adc0150..7d4e760 100644
--- a/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4xI8Clamp/e42b2a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xI8Clamp_e42b2a() -> u32 {
   var arg_0 = vec4<i32>(1i);
   var res : u32 = pack4xI8Clamp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xI8Clamp_e42b2a();
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl
index 3884883..4b6d513 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl
@@ -36,14 +36,15 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xU8(vec4<u32>) -> u32
 fn pack4xU8_b70b53() -> u32{
   var arg_0 = vec4<u32>(1u);
   var res: u32 = pack4xU8(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8_b70b53();
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.dxc.hlsl
index e288dc0..1c7abb9 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8_b70b53() {
   uint4 arg_0 = (1u).xxxx;
   uint res = uint(pack_u8(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8_b70b53()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.fxc.hlsl
index 33c5e4c..6ab2054 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return dot(a_u8, (1u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8_b70b53() {
   uint4 arg_0 = (1u).xxxx;
   uint res = tint_pack_4xu8(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8_b70b53()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.glsl
index e1e75c4..a15234c 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.glsl
@@ -11,16 +11,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8_b70b53() {
   uvec4 arg_0 = uvec4(1u);
   uint res = tint_pack_4xu8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -45,16 +45,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8_b70b53() {
   uvec4 arg_0 = uvec4(1u);
   uint res = tint_pack_4xu8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.wgsl
index 63c4f8b..9a93e6d 100644
--- a/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4xU8/b70b53.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xU8_b70b53() -> u32 {
   var arg_0 = vec4<u32>(1u);
   var res : u32 = pack4xU8(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8_b70b53();
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl
index a3449d5..ce597e8 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn pack4xU8Clamp(vec4<u32>) -> u32
 fn pack4xU8Clamp_6b8c1b() -> u32{
   var arg_0 = vec4<u32>(1u);
   var res: u32 = pack4xU8Clamp(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8Clamp_6b8c1b();
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl
index 408514d..47a4740 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.dxc.hlsl
@@ -4,14 +4,14 @@
   return dot(a_u8, (1u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8Clamp_6b8c1b() {
   uint4 arg_0 = (1u).xxxx;
   uint res = tint_pack_4xu8_clamp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8Clamp_6b8c1b()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl
index 408514d..47a4740 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return dot(a_u8, (1u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint pack4xU8Clamp_6b8c1b() {
   uint4 arg_0 = (1u).xxxx;
   uint res = tint_pack_4xu8_clamp(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pack4xU8Clamp_6b8c1b()));
   return;
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl
index 9de5c85..c0b7bbb 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.glsl
@@ -12,16 +12,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8Clamp_6b8c1b() {
   uvec4 arg_0 = uvec4(1u);
   uint res = tint_pack_4xu8_clamp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -47,16 +47,16 @@
   return tint_int_dot(a_u8, uvec4(1u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint pack4xU8Clamp_6b8c1b() {
   uvec4 arg_0 = uvec4(1u);
   uint res = tint_pack_4xu8_clamp(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl
index df31f24..b5d3653 100644
--- a/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pack4xU8Clamp/6b8c1b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn pack4xU8Clamp_6b8c1b() -> u32 {
   var arg_0 = vec4<u32>(1u);
   var res : u32 = pack4xU8Clamp(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pack4xU8Clamp_6b8c1b();
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl b/test/tint/builtins/gen/var/pow/04a908.wgsl
index 724846d..39951b0 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn pow(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn pow_04a908() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_04a908();
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.dxc.hlsl
index b46ef04..d3f75c4 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 pow_04a908() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(pow_04a908()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.fxc.hlsl
index b46ef04..d3f75c4 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 pow_04a908() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(pow_04a908()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.glsl
index 4a68432..37f9806 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 pow_04a908() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 pow_04a908() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.wgsl
index 685659d..0c75880 100644
--- a/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/04a908.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn pow_04a908() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_04a908();
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl b/test/tint/builtins/gen/var/pow/46e029.wgsl
index 8738079..53022d1 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn pow(f32, f32) -> f32
 fn pow_46e029() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_46e029();
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.dxc.hlsl
index 6a90d3c..940249b 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float pow_46e029() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pow_46e029()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.fxc.hlsl
index 6a90d3c..940249b 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float pow_46e029() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(pow_46e029()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.glsl
index e84abb0..fe68c45 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float pow_46e029() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float pow_46e029() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.wgsl
index 0758299..3a5c721ae 100644
--- a/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/46e029.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn pow_46e029() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_46e029();
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl
index 37bce4d..d1294784 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn pow(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn pow_4a46c9() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4a46c9();
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.dxc.hlsl
index 7c6824e..f17ce08 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 pow_4a46c9() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(pow_4a46c9()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.fxc.hlsl
index 7c6824e..f17ce08 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 pow_4a46c9() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(pow_4a46c9()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.glsl
index e686c7b..9f81972 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 pow_4a46c9() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 pow_4a46c9() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.wgsl
index 5c2588a..15757fd2 100644
--- a/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/4a46c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn pow_4a46c9() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4a46c9();
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl
index cd44cf3..75ada76 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn pow(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn pow_4f33b2() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4f33b2();
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.dxc.hlsl
index f139fa3..ee801b8 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> pow_4f33b2() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, pow_4f33b2());
   return;
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.glsl
index f76e141..192b9b0 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 pow_4f33b2() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 pow_4f33b2() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.wgsl
index 25fa490..f1ac1bd 100644
--- a/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/4f33b2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn pow_4f33b2() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_4f33b2();
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl
index b5da6a2..42cec61 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn pow(f16, f16) -> f16
 fn pow_ce9ef5() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_ce9ef5();
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.dxc.hlsl
index 3744186..f03529b 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t pow_ce9ef5() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, pow_ce9ef5());
   return;
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.glsl
index 9296085..fff4db4 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t pow_ce9ef5() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t pow_ce9ef5() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.wgsl
index 6fe81b4..f7abf6c 100644
--- a/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/ce9ef5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn pow_ce9ef5() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_ce9ef5();
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl
index b119544..d1a2842 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn pow(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn pow_e60ea5() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_e60ea5();
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.dxc.hlsl
index d5e5143..e493d6a 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 pow_e60ea5() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(pow_e60ea5()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.fxc.hlsl
index d5e5143..e493d6a 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 pow_e60ea5() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(pow_e60ea5()));
   return;
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.glsl
index 16a4458..b7627c5 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 pow_e60ea5() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 pow_e60ea5() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.wgsl
index b2613b7..17697cf 100644
--- a/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/e60ea5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn pow_e60ea5() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_e60ea5();
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl
index 8332989..f2ade16 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn pow(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn pow_f37b25() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_f37b25();
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.dxc.hlsl
index b404b77..e4f6ca5 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> pow_f37b25() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, pow_f37b25());
   return;
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.glsl
index d136d1c..ce70b51 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 pow_f37b25() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 pow_f37b25() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.wgsl
index 6e90569..b9e7e68 100644
--- a/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/f37b25.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn pow_f37b25() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_f37b25();
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl
index a5d8217..f0263c5 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn pow(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn pow_fa5429() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = pow(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_fa5429();
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.dxc.hlsl
index a80e318..0d57acd 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> pow_fa5429() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, pow_fa5429());
   return;
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.glsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.glsl
index 9ca25f3..542c32e 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 pow_fa5429() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 pow_fa5429() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.wgsl b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.wgsl
index d92549e..c3efde0 100644
--- a/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/pow/fa5429.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn pow_fa5429() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = pow_fa5429();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl
index 70b45ff..c4f51fc 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn quantizeToF16(f32) -> f32
 fn quantizeToF16_12e50e() -> f32{
   var arg_0 = 1.f;
   var res: f32 = quantizeToF16(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_12e50e();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl
index 7ba8f58..f907915 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float quantizeToF16_12e50e() {
   float arg_0 = 1.0f;
   float res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl
index 7ba8f58..f907915 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float quantizeToF16_12e50e() {
   float arg_0 = 1.0f;
   float res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(quantizeToF16_12e50e()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.glsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.glsl
index 407fda5..15242cf 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float quantizeToF16_12e50e() {
   float arg_0 = 1.0f;
   float res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float quantizeToF16_12e50e() {
   float arg_0 = 1.0f;
   float res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.wgsl
index 31b11bc..8477206 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/12e50e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn quantizeToF16_12e50e() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = quantizeToF16(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_12e50e();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl
index a8e3366..53a5d8e 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn quantizeToF16(vec<2, f32>) -> vec<2, f32>
 fn quantizeToF16_2cddf3() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = quantizeToF16(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_2cddf3();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl
index 2e97780..929f4f2 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 quantizeToF16_2cddf3() {
   float2 arg_0 = (1.0f).xx;
   float2 res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl
index 2e97780..929f4f2 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 quantizeToF16_2cddf3() {
   float2 arg_0 = (1.0f).xx;
   float2 res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(quantizeToF16_2cddf3()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.glsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.glsl
index 7cfb39d..732460e 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 quantizeToF16_2cddf3() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 quantizeToF16_2cddf3() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.wgsl
index 9369fe3..a6bd4e3 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/2cddf3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn quantizeToF16_2cddf3() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = quantizeToF16(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_2cddf3();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl
index 4d0da2e..f3908c9 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn quantizeToF16(vec<4, f32>) -> vec<4, f32>
 fn quantizeToF16_cba294() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = quantizeToF16(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_cba294();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.dxc.hlsl
index a5a5e7f..cc1d734 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 quantizeToF16_cba294() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.fxc.hlsl
index a5a5e7f..cc1d734 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 quantizeToF16_cba294() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(quantizeToF16_cba294()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.glsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.glsl
index 959ef53..52824ae 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.glsl
@@ -9,16 +9,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 quantizeToF16_cba294() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -41,16 +41,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 quantizeToF16_cba294() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.wgsl b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.wgsl
index 48936dd..aa2c0ea 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/cba294.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn quantizeToF16_cba294() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = quantizeToF16(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_cba294();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl
index 2caf6f1..2284f93 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn quantizeToF16(vec<3, f32>) -> vec<3, f32>
 fn quantizeToF16_e8fd14() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = quantizeToF16(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_e8fd14();
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl
index 3323108..ae85940 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 quantizeToF16_e8fd14() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl
index 3323108..ae85940 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 quantizeToF16_e8fd14() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = f16tof32(f32tof16(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(quantizeToF16_e8fd14()));
   return;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.glsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.glsl
index 3f34b17..05fc29b 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.glsl
@@ -9,17 +9,17 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 quantizeToF16_e8fd14() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -42,17 +42,17 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 quantizeToF16_e8fd14() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tint_quantizeToF16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.wgsl b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.wgsl
index cfc12c1..9063fb1 100644
--- a/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/quantizeToF16/e8fd14.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn quantizeToF16_e8fd14() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = quantizeToF16(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = quantizeToF16_e8fd14();
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl
index 0cb21b3..86a3bb0 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn radians(vec<4, f32>) -> vec<4, f32>
 fn radians_09b7fc() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_09b7fc();
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl
index 665dd01..2405e8d 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 radians_09b7fc() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(radians_09b7fc()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl
index 665dd01..2405e8d 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 radians_09b7fc() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(radians_09b7fc()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl
index 6ad864d..f7c45f2 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 radians_09b7fc() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 radians_09b7fc() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.wgsl
index c5ecb6d..86229b5 100644
--- a/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/09b7fc.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn radians_09b7fc() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_09b7fc();
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl
index 5dba9d2..a5bcf78 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn radians(f16) -> f16
 fn radians_208fd9() -> f16{
   var arg_0 = 1.h;
   var res: f16 = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_208fd9();
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl
index 4b3e47a..c1f99d8 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t radians_208fd9() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, radians_208fd9());
   return;
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl
index 489820d..a4478bd 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t radians_208fd9() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t radians_208fd9() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.wgsl
index 835b4d6..e188e4b 100644
--- a/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/208fd9.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn radians_208fd9() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_208fd9();
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl
index d893f99..49c3734 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn radians(vec<4, f16>) -> vec<4, f16>
 fn radians_44f20b() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_44f20b();
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl
index 76bacb7..e857f5b 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> radians_44f20b() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, radians_44f20b());
   return;
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl
index 6b11b6d..51dc1e1 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 radians_44f20b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 radians_44f20b() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.wgsl
index 60848b0..8d1aeb1 100644
--- a/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/44f20b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn radians_44f20b() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_44f20b();
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl b/test/tint/builtins/gen/var/radians/61687a.wgsl
index 651e22a..5386a14 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn radians(vec<2, f32>) -> vec<2, f32>
 fn radians_61687a() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_61687a();
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl
index 5e13887..c343769 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 radians_61687a() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(radians_61687a()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl
index 5e13887..c343769 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 radians_61687a() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(radians_61687a()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl
index 7a6eade..77b0b85 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 radians_61687a() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 radians_61687a() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.wgsl
index 7bbf673f..eb9b5b4 100644
--- a/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/61687a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn radians_61687a() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_61687a();
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl
index 1031b63..7c9d165 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn radians(f32) -> f32
 fn radians_6b0ff2() -> f32{
   var arg_0 = 1.f;
   var res: f32 = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_6b0ff2();
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl
index 93920c1..daa29bf 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float radians_6b0ff2() {
   float arg_0 = 1.0f;
   float res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(radians_6b0ff2()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl
index 93920c1..daa29bf 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float radians_6b0ff2() {
   float arg_0 = 1.0f;
   float res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(radians_6b0ff2()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl
index 4eec740..b883d0e 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.glsl
@@ -7,16 +7,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float radians_6b0ff2() {
   float arg_0 = 1.0f;
   float res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -37,16 +37,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float radians_6b0ff2() {
   float arg_0 = 1.0f;
   float res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.wgsl
index 955832a..fcfa2cb 100644
--- a/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/6b0ff2.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn radians_6b0ff2() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_6b0ff2();
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl
index 7ec0d51..7985bed 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn radians(vec<3, f16>) -> vec<3, f16>
 fn radians_7ea4c7() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_7ea4c7();
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl
index dc353f8..2bc8b2c 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> radians_7ea4c7() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, radians_7ea4c7());
   return;
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl
index d820d92..74c8c57 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 radians_7ea4c7() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 radians_7ea4c7() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.wgsl
index 3f1faa6..4e5ac47 100644
--- a/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/7ea4c7.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn radians_7ea4c7() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_7ea4c7();
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl b/test/tint/builtins/gen/var/radians/f96258.wgsl
index 6bc35bd..1d4c072 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn radians(vec<3, f32>) -> vec<3, f32>
 fn radians_f96258() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_f96258();
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl
index 275f786..7d32ed9 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 radians_f96258() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(radians_f96258()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl
index 275f786..7d32ed9 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 radians_f96258() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(radians_f96258()));
   return;
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl
index 01a4586..8afd7ac 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.glsl
@@ -7,17 +7,17 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 radians_f96258() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -38,17 +38,17 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 radians_f96258() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.wgsl
index 87c7d9d..fe3406e 100644
--- a/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/f96258.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn radians_f96258() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_f96258();
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl
index 4094026..3eafed6 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn radians(vec<2, f16>) -> vec<2, f16>
 fn radians_fbacf0() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = radians(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_fbacf0();
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl
index cc50cfd..69bc3e0 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 * 0.01745329251994329547;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> radians_fbacf0() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tint_radians(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, radians_fbacf0());
   return;
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl
index 4d6a941..227db28 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.glsl
@@ -8,16 +8,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 radians_fbacf0() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -39,16 +39,16 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 radians_fbacf0() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tint_radians(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.wgsl
index 09a5a7e..13d0c4a 100644
--- a/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/radians/fbacf0.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn radians_fbacf0() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = radians(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = radians_fbacf0();
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl
index a2b9aef..c135709 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn reflect(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn reflect_05357e() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = reflect(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_05357e();
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.dxc.hlsl
index 2f26093..9155a2a 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 reflect_05357e() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reflect_05357e()));
   return;
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.fxc.hlsl
index 2f26093..9155a2a 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 reflect_05357e() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reflect_05357e()));
   return;
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.glsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.glsl
index 2a22edb..10d7145 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 reflect_05357e() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 reflect_05357e() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.wgsl
index e88d1f5..2e2dd25 100644
--- a/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reflect/05357e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn reflect_05357e() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_05357e();
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl
index 5fe2730..cbdc805 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn reflect(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn reflect_310de5() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = reflect(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_310de5();
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.dxc.hlsl
index 3e2eff5..27b5162 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> reflect_310de5() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, reflect_310de5());
   return;
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.glsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.glsl
index 151f8b5..9587fa4 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 reflect_310de5() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 reflect_310de5() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.wgsl
index 6998574..a375e6a 100644
--- a/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reflect/310de5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn reflect_310de5() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_310de5();
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl
index 2911bf8..b09d114 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn reflect(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn reflect_61ca21() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = reflect(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_61ca21();
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.dxc.hlsl
index ad4c622..01d1588 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> reflect_61ca21() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, reflect_61ca21());
   return;
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.glsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.glsl
index 00af705..407a80c 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 reflect_61ca21() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 reflect_61ca21() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.wgsl
index 820dfe9..6bccc7a 100644
--- a/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reflect/61ca21.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn reflect_61ca21() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_61ca21();
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl
index acdf2a2..c64f9dd 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn reflect(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn reflect_b61e10() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = reflect(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_b61e10();
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.dxc.hlsl
index 841565b..27ff590 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 reflect_b61e10() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reflect_b61e10()));
   return;
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.fxc.hlsl
index 841565b..27ff590 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 reflect_b61e10() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reflect_b61e10()));
   return;
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.glsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.glsl
index da4deba..545a752 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 reflect_b61e10() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 reflect_b61e10() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.wgsl
index 7850336..aaa9169 100644
--- a/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reflect/b61e10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn reflect_b61e10() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_b61e10();
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl
index db04c81..95f1943 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn reflect(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn reflect_bb15ac() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = reflect(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_bb15ac();
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.dxc.hlsl
index 7df33da..a1c77f6 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> reflect_bb15ac() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, reflect_bb15ac());
   return;
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.glsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.glsl
index d8a7c26..92fcf89 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 reflect_bb15ac() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 reflect_bb15ac() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.wgsl
index 2d9401a..df5775c 100644
--- a/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reflect/bb15ac.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn reflect_bb15ac() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_bb15ac();
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl
index a9793b5..cef56f9 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn reflect(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn reflect_f47fdb() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = reflect(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_f47fdb();
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.dxc.hlsl
index 3dc620c..fec3988 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 reflect_f47fdb() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
   return;
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.fxc.hlsl
index 3dc620c..fec3988 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 reflect_f47fdb() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reflect_f47fdb()));
   return;
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.glsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.glsl
index d356aa2..6ac9260 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 reflect_f47fdb() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 reflect_f47fdb() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.wgsl
index e98f727..ab9b496 100644
--- a/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reflect/f47fdb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn reflect_f47fdb() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reflect_f47fdb();
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl
index b8d8979..5a4e462 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn refract(vec<4, f16>, vec<4, f16>, f16) -> vec<4, f16>
 fn refract_0594ba() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = refract(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_0594ba();
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.dxc.hlsl
index d67ddef..04fcd14 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> refract_0594ba() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, refract_0594ba());
   return;
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.glsl
index 2bd790b..4843d5e 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 refract_0594ba() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 refract_0594ba() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.wgsl
index d6f79c8..c41fad6 100644
--- a/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/refract/0594ba.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn refract_0594ba() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_0594ba();
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl
index ee191ea..8d1e89c 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn refract(vec<2, f16>, vec<2, f16>, f16) -> vec<2, f16>
 fn refract_570cb3() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = refract(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_570cb3();
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.dxc.hlsl
index f92ad37..4ea2d0e 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> refract_570cb3() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, refract_570cb3());
   return;
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.glsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.glsl
index f70599c..78d8341 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 refract_570cb3() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 refract_570cb3() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.wgsl
index 8fd4b38..0bf9546 100644
--- a/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/refract/570cb3.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn refract_570cb3() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_570cb3();
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl
index a0fd8ad..843e4c8 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn refract(vec<4, f32>, vec<4, f32>, f32) -> vec<4, f32>
 fn refract_7e02e6() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = refract(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_7e02e6();
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.dxc.hlsl
index c3343c6..4d90b3c 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 refract_7e02e6() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(refract_7e02e6()));
   return;
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.fxc.hlsl
index c3343c6..4d90b3c 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 refract_7e02e6() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(refract_7e02e6()));
   return;
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.glsl
index fbdd597..fcb8e2b 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 refract_7e02e6() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 refract_7e02e6() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.wgsl
index 13ff29a..291e218 100644
--- a/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/refract/7e02e6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn refract_7e02e6() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_7e02e6();
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl b/test/tint/builtins/gen/var/refract/8984af.wgsl
index 15372b3..c5ff756 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn refract(vec<3, f16>, vec<3, f16>, f16) -> vec<3, f16>
 fn refract_8984af() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = refract(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_8984af();
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.dxc.hlsl
index 0b1fbae..056c27f 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> refract_8984af() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, refract_8984af());
   return;
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.glsl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.glsl
index 5300a4c8..861c63a 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 refract_8984af() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 refract_8984af() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.wgsl b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.wgsl
index 5d98c48..8d9507e 100644
--- a/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/refract/8984af.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn refract_8984af() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_8984af();
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl
index 507dbd2..6f3336f 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn refract(vec<3, f32>, vec<3, f32>, f32) -> vec<3, f32>
 fn refract_cbc1d2() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = refract(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cbc1d2();
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.dxc.hlsl
index b7d85c1..959f32d 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 refract_cbc1d2() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
   return;
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.fxc.hlsl
index b7d85c1..959f32d 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 refract_cbc1d2() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(refract_cbc1d2()));
   return;
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.glsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.glsl
index 3954924..e8c0538 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 refract_cbc1d2() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 refract_cbc1d2() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.wgsl
index 1e2a944..0d5bed2 100644
--- a/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/refract/cbc1d2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn refract_cbc1d2() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cbc1d2();
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl
index 9cae9a7..2c1a535 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn refract(vec<2, f32>, vec<2, f32>, f32) -> vec<2, f32>
 fn refract_cd905f() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = refract(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cd905f();
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.dxc.hlsl
index 5c530e3..15f5864 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 refract_cd905f() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(refract_cd905f()));
   return;
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.fxc.hlsl
index 5c530e3..15f5864 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 refract_cd905f() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(refract_cd905f()));
   return;
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.glsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.glsl
index cb3af30..088ccd5 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 refract_cd905f() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 refract_cd905f() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.wgsl
index d58326a..dc5cb85 100644
--- a/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/refract/cd905f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn refract_cd905f() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = refract_cd905f();
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl
index 620307e..1c280a0 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn reverseBits(vec<2, i32>) -> vec<2, i32>
 fn reverseBits_222177() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_222177();
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.dxc.hlsl
index 07c8ab4..d54fb1f 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 reverseBits_222177() {
   int2 arg_0 = (1).xx;
   int2 res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_222177()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.fxc.hlsl
index 07c8ab4..d54fb1f 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 reverseBits_222177() {
   int2 arg_0 = (1).xx;
   int2 res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_222177()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.glsl
index 53ec356..f9aa099 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 reverseBits_222177() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 reverseBits_222177() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.wgsl
index fedd3a3..fcc7c42 100644
--- a/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/222177.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn reverseBits_222177() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_222177();
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl
index efc57d4..896aa66 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn reverseBits(vec<4, u32>) -> vec<4, u32>
 fn reverseBits_35fea9() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
   var res: vec4<u32> = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_35fea9();
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.dxc.hlsl
index 14b952d..92b21c4 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 reverseBits_35fea9() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_35fea9()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.fxc.hlsl
index 14b952d..92b21c4 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 reverseBits_35fea9() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_35fea9()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.glsl
index 19980a7..1aae3cb 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 reverseBits_35fea9() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 reverseBits_35fea9() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.wgsl
index b0748d3..0179606 100644
--- a/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/35fea9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn reverseBits_35fea9() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var res : vec4<u32> = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_35fea9();
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl
index 7d5503f..e7e6648 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn reverseBits(vec<4, i32>) -> vec<4, i32>
 fn reverseBits_4dbd6f() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_4dbd6f();
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl
index 7d08161..d187072 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 reverseBits_4dbd6f() {
   int4 arg_0 = (1).xxxx;
   int4 res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl
index 7d08161..d187072 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 reverseBits_4dbd6f() {
   int4 arg_0 = (1).xxxx;
   int4 res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(reverseBits_4dbd6f()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.glsl
index 209e676..5580337 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 reverseBits_4dbd6f() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 reverseBits_4dbd6f() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.wgsl
index 1cf1d5e..2873070 100644
--- a/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/4dbd6f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn reverseBits_4dbd6f() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_4dbd6f();
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl
index 46de8ad..12b1404 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn reverseBits(i32) -> i32
 fn reverseBits_7c4269() -> i32{
   var arg_0 = 1i;
   var res: i32 = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_7c4269();
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.dxc.hlsl
index 76e672c..0293a77 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int reverseBits_7c4269() {
   int arg_0 = 1;
   int res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.fxc.hlsl
index 76e672c..0293a77 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int reverseBits_7c4269() {
   int arg_0 = 1;
   int res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_7c4269()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.glsl
index b1a0e4a..cb65e94 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int reverseBits_7c4269() {
   int arg_0 = 1;
   int res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int reverseBits_7c4269() {
   int arg_0 = 1;
   int res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.wgsl
index e8c542f..e61452e 100644
--- a/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/7c4269.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn reverseBits_7c4269() -> i32 {
   var arg_0 = 1i;
   var res : i32 = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_7c4269();
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl
index 513ee32..5190734 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn reverseBits(vec<3, u32>) -> vec<3, u32>
 fn reverseBits_a6ccd4() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
   var res: vec3<u32> = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_a6ccd4();
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl
index 4218a70..99233f7 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 reverseBits_a6ccd4() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_a6ccd4()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl
index 4218a70..99233f7 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 reverseBits_a6ccd4() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_a6ccd4()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.glsl
index 7da4cc5..9fd7726 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 reverseBits_a6ccd4() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 reverseBits_a6ccd4() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.wgsl
index 730b098..97696e6 100644
--- a/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/a6ccd4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn reverseBits_a6ccd4() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var res : vec3<u32> = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_a6ccd4();
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl
index 2049f7b..9e96479a 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn reverseBits(vec<3, i32>) -> vec<3, i32>
 fn reverseBits_c21bc1() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_c21bc1();
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.dxc.hlsl
index f3dac7f..dc525fc 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 reverseBits_c21bc1() {
   int3 arg_0 = (1).xxx;
   int3 res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.fxc.hlsl
index f3dac7f..dc525fc 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 reverseBits_c21bc1() {
   int3 arg_0 = (1).xxx;
   int3 res = asint(reversebits(asuint(arg_0)));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(reverseBits_c21bc1()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.glsl
index 1628ae4..ebdd6aa 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 reverseBits_c21bc1() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 reverseBits_c21bc1() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.wgsl
index cce306d..68efe20 100644
--- a/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/c21bc1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn reverseBits_c21bc1() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_c21bc1();
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl
index c527c4e..f5980cb 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn reverseBits(vec<2, u32>) -> vec<2, u32>
 fn reverseBits_e1f4c1() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
   var res: vec2<u32> = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e1f4c1();
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl
index cca0c83..100745a 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 reverseBits_e1f4c1() {
   uint2 arg_0 = (1u).xx;
   uint2 res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_e1f4c1()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl
index cca0c83..100745a 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 reverseBits_e1f4c1() {
   uint2 arg_0 = (1u).xx;
   uint2 res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(reverseBits_e1f4c1()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.glsl
index 5396bd2..8957103 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 reverseBits_e1f4c1() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 reverseBits_e1f4c1() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.wgsl
index c8d871d..f3f5b82 100644
--- a/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/e1f4c1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn reverseBits_e1f4c1() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var res : vec2<u32> = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e1f4c1();
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl
index 18217aa..7661c1e 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn reverseBits(u32) -> u32
 fn reverseBits_e31adf() -> u32{
   var arg_0 = 1u;
   var res: u32 = reverseBits(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e31adf();
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.dxc.hlsl
index 8453c76..9d68f2f 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint reverseBits_e31adf() {
   uint arg_0 = 1u;
   uint res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_e31adf()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.fxc.hlsl
index 8453c76..9d68f2f 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint reverseBits_e31adf() {
   uint arg_0 = 1u;
   uint res = reversebits(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(reverseBits_e31adf()));
   return;
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.glsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.glsl
index 42091af..db28b1b 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint reverseBits_e31adf() {
   uint arg_0 = 1u;
   uint res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint reverseBits_e31adf() {
   uint arg_0 = 1u;
   uint res = bitfieldReverse(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.wgsl
index f1234ab..8a2f057 100644
--- a/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/reverseBits/e31adf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn reverseBits_e31adf() -> u32 {
   var arg_0 = 1u;
   var res : u32 = reverseBits(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = reverseBits_e31adf();
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl b/test/tint/builtins/gen/var/round/106c0b.wgsl
index b22430e..6580b66 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn round(vec<4, f32>) -> vec<4, f32>
 fn round_106c0b() -> vec4<f32>{
   var arg_0 = vec4<f32>(3.5f);
   var res: vec4<f32> = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_106c0b();
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl
index 8e84c62..723ac51 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 round_106c0b() {
   float4 arg_0 = (3.5f).xxxx;
   float4 res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(round_106c0b()));
   return;
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl
index 8e84c62..723ac51 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 round_106c0b() {
   float4 arg_0 = (3.5f).xxxx;
   float4 res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(round_106c0b()));
   return;
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl
index 875b409..0d9a9a5 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 round_106c0b() {
   vec4 arg_0 = vec4(3.5f);
   vec4 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 round_106c0b() {
   vec4 arg_0 = vec4(3.5f);
   vec4 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl
index b53f09d..5a9a51f 100644
--- a/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/106c0b.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn round_106c0b() -> vec4<f32> {
   var arg_0 = vec4<f32>(3.5f);
   var res : vec4<f32> = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_106c0b();
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl b/test/tint/builtins/gen/var/round/1c7897.wgsl
index 9ada695..2e8bf93 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn round(vec<3, f32>) -> vec<3, f32>
 fn round_1c7897() -> vec3<f32>{
   var arg_0 = vec3<f32>(3.5f);
   var res: vec3<f32> = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_1c7897();
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl
index 499232e..860aeaa 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 round_1c7897() {
   float3 arg_0 = (3.5f).xxx;
   float3 res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(round_1c7897()));
   return;
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl
index 499232e..860aeaa 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 round_1c7897() {
   float3 arg_0 = (3.5f).xxx;
   float3 res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(round_1c7897()));
   return;
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl
index a3e76a5..695bb88 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 round_1c7897() {
   vec3 arg_0 = vec3(3.5f);
   vec3 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 round_1c7897() {
   vec3 arg_0 = vec3(3.5f);
   vec3 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl
index 03ed048..f78c1e3 100644
--- a/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/1c7897.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn round_1c7897() -> vec3<f32> {
   var arg_0 = vec3<f32>(3.5f);
   var res : vec3<f32> = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_1c7897();
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl b/test/tint/builtins/gen/var/round/52c84d.wgsl
index 4368b3b..27cde52 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn round(vec<2, f32>) -> vec<2, f32>
 fn round_52c84d() -> vec2<f32>{
   var arg_0 = vec2<f32>(3.5f);
   var res: vec2<f32> = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_52c84d();
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl
index 8837fdf..78bf198 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 round_52c84d() {
   float2 arg_0 = (3.5f).xx;
   float2 res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(round_52c84d()));
   return;
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl
index 8837fdf..78bf198 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 round_52c84d() {
   float2 arg_0 = (3.5f).xx;
   float2 res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(round_52c84d()));
   return;
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl
index 2cbbd86..21399eb 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 round_52c84d() {
   vec2 arg_0 = vec2(3.5f);
   vec2 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 round_52c84d() {
   vec2 arg_0 = vec2(3.5f);
   vec2 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl
index 3b41886..eb15ad5 100644
--- a/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/52c84d.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn round_52c84d() -> vec2<f32> {
   var arg_0 = vec2<f32>(3.5f);
   var res : vec2<f32> = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_52c84d();
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl b/test/tint/builtins/gen/var/round/9078ef.wgsl
index ac67876..290abe2 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn round(f16) -> f16
 fn round_9078ef() -> f16{
   var arg_0 = 3.5h;
   var res: f16 = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9078ef();
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl
index c42f11a..e95c1f0 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t round_9078ef() {
   float16_t arg_0 = float16_t(3.5h);
   float16_t res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, round_9078ef());
   return;
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl
index 01cbb5c..132297d 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t round_9078ef() {
   float16_t arg_0 = 3.5hf;
   float16_t res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t round_9078ef() {
   float16_t arg_0 = 3.5hf;
   float16_t res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl
index 96fb754..a806e5a 100644
--- a/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/9078ef.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn round_9078ef() -> f16 {
   var arg_0 = 3.5h;
   var res : f16 = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9078ef();
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl b/test/tint/builtins/gen/var/round/9edc38.wgsl
index 45fdb42..8b1fd64 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn round(f32) -> f32
 fn round_9edc38() -> f32{
   var arg_0 = 3.5f;
   var res: f32 = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9edc38();
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl
index ebba895..ebbc098 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float round_9edc38() {
   float arg_0 = 3.5f;
   float res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(round_9edc38()));
   return;
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl
index ebba895..ebbc098 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float round_9edc38() {
   float arg_0 = 3.5f;
   float res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(round_9edc38()));
   return;
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl
index 900dec2..9339433 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float round_9edc38() {
   float arg_0 = 3.5f;
   float res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float round_9edc38() {
   float arg_0 = 3.5f;
   float res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl
index 1f1afd9..6b662b9 100644
--- a/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/9edc38.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn round_9edc38() -> f32 {
   var arg_0 = 3.5f;
   var res : f32 = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_9edc38();
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl b/test/tint/builtins/gen/var/round/d87e84.wgsl
index 3e72e6a..8450832 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn round(vec<2, f16>) -> vec<2, f16>
 fn round_d87e84() -> vec2<f16>{
   var arg_0 = vec2<f16>(3.5h);
   var res: vec2<f16> = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_d87e84();
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl
index 0d29baa..85216a4 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> round_d87e84() {
   vector<float16_t, 2> arg_0 = (float16_t(3.5h)).xx;
   vector<float16_t, 2> res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, round_d87e84());
   return;
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl
index 1dd643e..71c35c5 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 round_d87e84() {
   f16vec2 arg_0 = f16vec2(3.5hf);
   f16vec2 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 round_d87e84() {
   f16vec2 arg_0 = f16vec2(3.5hf);
   f16vec2 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl
index b7fd402..39b2cba 100644
--- a/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/d87e84.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn round_d87e84() -> vec2<f16> {
   var arg_0 = vec2<f16>(3.5h);
   var res : vec2<f16> = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_d87e84();
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl
index bb20f6d..c28a091 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn round(vec<3, f16>) -> vec<3, f16>
 fn round_e1bba2() -> vec3<f16>{
   var arg_0 = vec3<f16>(3.5h);
   var res: vec3<f16> = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_e1bba2();
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl
index 158c9e4..31f788e 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> round_e1bba2() {
   vector<float16_t, 3> arg_0 = (float16_t(3.5h)).xxx;
   vector<float16_t, 3> res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, round_e1bba2());
   return;
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl
index a1471cc..775b7c8 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 round_e1bba2() {
   f16vec3 arg_0 = f16vec3(3.5hf);
   f16vec3 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 round_e1bba2() {
   f16vec3 arg_0 = f16vec3(3.5hf);
   f16vec3 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl
index 6356c78..0a7c913 100644
--- a/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/e1bba2.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn round_e1bba2() -> vec3<f16> {
   var arg_0 = vec3<f16>(3.5h);
   var res : vec3<f16> = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_e1bba2();
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl b/test/tint/builtins/gen/var/round/f665b5.wgsl
index 25823b2..14af81e 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn round(vec<4, f16>) -> vec<4, f16>
 fn round_f665b5() -> vec4<f16>{
   var arg_0 = vec4<f16>(3.5h);
   var res: vec4<f16> = round(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_f665b5();
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl
index 73e7c15..11d2512 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> round_f665b5() {
   vector<float16_t, 4> arg_0 = (float16_t(3.5h)).xxxx;
   vector<float16_t, 4> res = round(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, round_f665b5());
   return;
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl
index d512806..95bb6ef 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 round_f665b5() {
   f16vec4 arg_0 = f16vec4(3.5hf);
   f16vec4 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 round_f665b5() {
   f16vec4 arg_0 = f16vec4(3.5hf);
   f16vec4 res = round(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl
index 36549e6..c668a38 100644
--- a/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/round/f665b5.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn round_f665b5() -> vec4<f16> {
   var arg_0 = vec4<f16>(3.5h);
   var res : vec4<f16> = round(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = round_f665b5();
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl
index ac38553..57723f1 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn saturate(f32) -> f32
 fn saturate_270da5() -> f32{
   var arg_0 = 2.f;
   var res: f32 = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_270da5();
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.dxc.hlsl
index 2f0f2dd..5b1c191 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float saturate_270da5() {
   float arg_0 = 2.0f;
   float res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(saturate_270da5()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.fxc.hlsl
index 2f0f2dd..5b1c191 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float saturate_270da5() {
   float arg_0 = 2.0f;
   float res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(saturate_270da5()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.glsl
index 2d4d578..fef22c1 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.glsl
@@ -6,16 +6,16 @@
   return clamp(v, 0.0f, 1.0f);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float saturate_270da5() {
   float arg_0 = 2.0f;
   float res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -35,16 +35,16 @@
   return clamp(v, 0.0f, 1.0f);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float saturate_270da5() {
   float arg_0 = 2.0f;
   float res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.wgsl
index 662281b..9c648fc 100644
--- a/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/270da5.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn saturate_270da5() -> f32 {
   var arg_0 = 2.0f;
   var res : f32 = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_270da5();
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl b/test/tint/builtins/gen/var/saturate/462535.wgsl
index 0ad9fdb..386157d 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn saturate(vec<3, f16>) -> vec<3, f16>
 fn saturate_462535() -> vec3<f16>{
   var arg_0 = vec3<f16>(2.h);
   var res: vec3<f16> = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_462535();
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.dxc.hlsl
index eabee6c..f7372ce 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> saturate_462535() {
   vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
   vector<float16_t, 3> res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, saturate_462535());
   return;
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.glsl
index d37989c..f434865 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return clamp(v, f16vec3(0.0hf), f16vec3(1.0hf));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 saturate_462535() {
   f16vec3 arg_0 = f16vec3(2.0hf);
   f16vec3 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -37,16 +37,16 @@
   return clamp(v, f16vec3(0.0hf), f16vec3(1.0hf));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 saturate_462535() {
   f16vec3 arg_0 = f16vec3(2.0hf);
   f16vec3 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.wgsl
index a7400e7..3edbd0c 100644
--- a/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/462535.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn saturate_462535() -> vec3<f16> {
   var arg_0 = vec3<f16>(2.0h);
   var res : vec3<f16> = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_462535();
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl
index 17b4dc9..46afff0 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn saturate(vec<2, f32>) -> vec<2, f32>
 fn saturate_51567f() -> vec2<f32>{
   var arg_0 = vec2<f32>(2.f);
   var res: vec2<f32> = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_51567f();
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.dxc.hlsl
index e49af1f..bfd1f20 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 saturate_51567f() {
   float2 arg_0 = (2.0f).xx;
   float2 res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(saturate_51567f()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.fxc.hlsl
index e49af1f..bfd1f20 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 saturate_51567f() {
   float2 arg_0 = (2.0f).xx;
   float2 res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(saturate_51567f()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.glsl
index a691876..85eddb7 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.glsl
@@ -6,16 +6,16 @@
   return clamp(v, vec2(0.0f), vec2(1.0f));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 saturate_51567f() {
   vec2 arg_0 = vec2(2.0f);
   vec2 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -35,16 +35,16 @@
   return clamp(v, vec2(0.0f), vec2(1.0f));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 saturate_51567f() {
   vec2 arg_0 = vec2(2.0f);
   vec2 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.wgsl
index 40f148d..5deae63 100644
--- a/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/51567f.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn saturate_51567f() -> vec2<f32> {
   var arg_0 = vec2<f32>(2.0f);
   var res : vec2<f32> = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_51567f();
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl
index 0cdf400..f5d4d37 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn saturate(vec<3, f32>) -> vec<3, f32>
 fn saturate_6bcddf() -> vec3<f32>{
   var arg_0 = vec3<f32>(2.f);
   var res: vec3<f32> = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_6bcddf();
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.dxc.hlsl
index e1e833e..a602f0d 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 saturate_6bcddf() {
   float3 arg_0 = (2.0f).xxx;
   float3 res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.fxc.hlsl
index e1e833e..a602f0d 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 saturate_6bcddf() {
   float3 arg_0 = (2.0f).xxx;
   float3 res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(saturate_6bcddf()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.glsl
index f7ee42c..a29b0ec 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.glsl
@@ -6,17 +6,17 @@
   return clamp(v, vec3(0.0f), vec3(1.0f));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 saturate_6bcddf() {
   vec3 arg_0 = vec3(2.0f);
   vec3 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -36,17 +36,17 @@
   return clamp(v, vec3(0.0f), vec3(1.0f));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 saturate_6bcddf() {
   vec3 arg_0 = vec3(2.0f);
   vec3 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.wgsl
index 880d881..82a0d3b 100644
--- a/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/6bcddf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn saturate_6bcddf() -> vec3<f32> {
   var arg_0 = vec3<f32>(2.0f);
   var res : vec3<f32> = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_6bcddf();
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl
index e45b683..8cdd907 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn saturate(vec<4, f32>) -> vec<4, f32>
 fn saturate_a5b571() -> vec4<f32>{
   var arg_0 = vec4<f32>(2.f);
   var res: vec4<f32> = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_a5b571();
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.dxc.hlsl
index 9560111..ba26ef3 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 saturate_a5b571() {
   float4 arg_0 = (2.0f).xxxx;
   float4 res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(saturate_a5b571()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.fxc.hlsl
index 9560111..ba26ef3 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 saturate_a5b571() {
   float4 arg_0 = (2.0f).xxxx;
   float4 res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(saturate_a5b571()));
   return;
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.glsl
index b9725d0..9e94b8b 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.glsl
@@ -6,16 +6,16 @@
   return clamp(v, vec4(0.0f), vec4(1.0f));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 saturate_a5b571() {
   vec4 arg_0 = vec4(2.0f);
   vec4 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -35,16 +35,16 @@
   return clamp(v, vec4(0.0f), vec4(1.0f));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 saturate_a5b571() {
   vec4 arg_0 = vec4(2.0f);
   vec4 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.wgsl
index 5622464..92f8b7b 100644
--- a/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/a5b571.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn saturate_a5b571() -> vec4<f32> {
   var arg_0 = vec4<f32>(2.0f);
   var res : vec4<f32> = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_a5b571();
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl
index 280b8b6..2c8e7f6 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn saturate(vec<2, f16>) -> vec<2, f16>
 fn saturate_cd2028() -> vec2<f16>{
   var arg_0 = vec2<f16>(2.h);
   var res: vec2<f16> = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_cd2028();
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.dxc.hlsl
index 47b10af..3c94e8f 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> saturate_cd2028() {
   vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
   vector<float16_t, 2> res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, saturate_cd2028());
   return;
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.glsl
index 6d2d36c..a63f66c 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return clamp(v, f16vec2(0.0hf), f16vec2(1.0hf));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 saturate_cd2028() {
   f16vec2 arg_0 = f16vec2(2.0hf);
   f16vec2 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -37,16 +37,16 @@
   return clamp(v, f16vec2(0.0hf), f16vec2(1.0hf));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 saturate_cd2028() {
   f16vec2 arg_0 = f16vec2(2.0hf);
   f16vec2 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.wgsl
index d0444e0..dcc25de 100644
--- a/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/cd2028.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn saturate_cd2028() -> vec2<f16> {
   var arg_0 = vec2<f16>(2.0h);
   var res : vec2<f16> = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_cd2028();
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl
index 354d743..fd87f60 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn saturate(vec<4, f16>) -> vec<4, f16>
 fn saturate_dcde71() -> vec4<f16>{
   var arg_0 = vec4<f16>(2.h);
   var res: vec4<f16> = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_dcde71();
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.dxc.hlsl
index 9203e67..f0eed29 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> saturate_dcde71() {
   vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
   vector<float16_t, 4> res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, saturate_dcde71());
   return;
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.glsl
index fd9b6ae..3d70742 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return clamp(v, f16vec4(0.0hf), f16vec4(1.0hf));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 saturate_dcde71() {
   f16vec4 arg_0 = f16vec4(2.0hf);
   f16vec4 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -37,16 +37,16 @@
   return clamp(v, f16vec4(0.0hf), f16vec4(1.0hf));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 saturate_dcde71() {
   f16vec4 arg_0 = f16vec4(2.0hf);
   f16vec4 res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.wgsl
index e24558a..1e2fec0 100644
--- a/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/dcde71.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn saturate_dcde71() -> vec4<f16> {
   var arg_0 = vec4<f16>(2.0h);
   var res : vec4<f16> = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_dcde71();
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl
index 36dbdcb..5bfe0f6 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn saturate(f16) -> f16
 fn saturate_e8df56() -> f16{
   var arg_0 = 2.h;
   var res: f16 = saturate(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_e8df56();
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.dxc.hlsl
index e028c2e..ecc42f5 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t saturate_e8df56() {
   float16_t arg_0 = float16_t(2.0h);
   float16_t res = saturate(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, saturate_e8df56());
   return;
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.glsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.glsl
index 56f2b97..fbcd716 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return clamp(v, 0.0hf, 1.0hf);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t saturate_e8df56() {
   float16_t arg_0 = 2.0hf;
   float16_t res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -37,16 +37,16 @@
   return clamp(v, 0.0hf, 1.0hf);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t saturate_e8df56() {
   float16_t arg_0 = 2.0hf;
   float16_t res = tint_saturate(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.wgsl b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.wgsl
index dd84069..161fa10 100644
--- a/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/saturate/e8df56.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn saturate_e8df56() -> f16 {
   var arg_0 = 2.0h;
   var res : f16 = saturate(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = saturate_e8df56();
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl b/test/tint/builtins/gen/var/select/00b848.wgsl
index 0102aa1..1bc3f8a 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn select(vec<2, i32>, vec<2, i32>, vec<2, bool>) -> vec<2, i32>
 fn select_00b848() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec2<i32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_00b848();
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.dxc.hlsl
index 91781d1..51d65cb 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_00b848() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_00b848()));
   return;
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.fxc.hlsl
index 91781d1..51d65cb 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_00b848() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_00b848()));
   return;
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.glsl
index 9224474..d86aadc 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_00b848() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_00b848() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -47,10 +51,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.wgsl
index 9ca281f..aa0af76 100644
--- a/test/tint/builtins/gen/var/select/00b848.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/00b848.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn select_00b848() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_00b848();
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl
index bea8110..1fb7f47 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn select(vec<3, i32>, vec<3, i32>, vec<3, bool>) -> vec<3, i32>
 fn select_01e2cd() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec3<i32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_01e2cd();
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.dxc.hlsl
index 01c4bc9..89f7254 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_01e2cd() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_01e2cd()));
   return;
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.fxc.hlsl
index 01c4bc9..89f7254 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_01e2cd() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_01e2cd()));
   return;
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.glsl
index 6e9f54b..281ac6a 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.glsl
@@ -7,6 +7,11 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 select_01e2cd() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -15,11 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -40,6 +40,11 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 select_01e2cd() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -48,11 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.wgsl
index 9042c42..b1afba9 100644
--- a/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/01e2cd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn select_01e2cd() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_01e2cd();
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl b/test/tint/builtins/gen/var/select/087ea4.wgsl
index 747c8da..26b9579 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn select(vec<4, u32>, vec<4, u32>, bool) -> vec<4, u32>
 fn select_087ea4() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec4<u32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_087ea4();
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.dxc.hlsl
index f2b4e49..18f17fa 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_087ea4() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_087ea4()));
   return;
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.fxc.hlsl
index f2b4e49..18f17fa 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_087ea4() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_087ea4()));
   return;
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.glsl
index 59d859a..9d44351 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_087ea4() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_087ea4() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.wgsl
index 3d02b57..64ecc0a 100644
--- a/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/087ea4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn select_087ea4() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_087ea4();
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl b/test/tint/builtins/gen/var/select/10e73b.wgsl
index 55fc248..db73158 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn select(f16, f16, bool) -> f16
 fn select_10e73b() -> f16{
   var arg_0 = 1.h;
@@ -48,8 +51,6 @@
   var res: f16 = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_10e73b();
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.dxc.hlsl
index f8f632c..42d9075 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t select_10e73b() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, select_10e73b());
   return;
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.glsl
index 0bc0182..cc9777b 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t select_10e73b() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t select_10e73b() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.wgsl
index 30afeaa..4831a8b 100644
--- a/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/10e73b.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn select_10e73b() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_10e73b();
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl
index b50e0a0..b164251 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn select(vec<3, f16>, vec<3, f16>, bool) -> vec<3, f16>
 fn select_1ada2a() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1ada2a();
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.dxc.hlsl
index a8f1a16..2bc8444 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> select_1ada2a() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, select_1ada2a());
   return;
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.glsl
index 2a5e874..e19f735 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_1ada2a() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_1ada2a() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.wgsl
index b5ccbc0..11db52a 100644
--- a/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/1ada2a.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn select_1ada2a() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1ada2a();
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl b/test/tint/builtins/gen/var/select/1e960b.wgsl
index bc36298..5150be7 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn select(vec<2, u32>, vec<2, u32>, vec<2, bool>) -> vec<2, u32>
 fn select_1e960b() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec2<u32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1e960b();
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.dxc.hlsl
index 6eed8b6..dccb707 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_1e960b() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_1e960b()));
   return;
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.fxc.hlsl
index 6eed8b6..dccb707 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_1e960b() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_1e960b()));
   return;
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.glsl
index bff2614..834ffc7 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_1e960b() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_1e960b() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -47,10 +51,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.wgsl
index 6849ab6..1eabc37 100644
--- a/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/1e960b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn select_1e960b() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_1e960b();
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl b/test/tint/builtins/gen/var/select/266aff.wgsl
index 1f90f29..5502ed4 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn select(vec<2, f32>, vec<2, f32>, vec<2, bool>) -> vec<2, f32>
 fn select_266aff() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_266aff();
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.dxc.hlsl
index abc13dd..ed3afed 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_266aff() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_266aff()));
   return;
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.fxc.hlsl
index abc13dd..ed3afed 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_266aff() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_266aff()));
   return;
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.glsl
index 03b258a..126d014 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_266aff() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_266aff() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -47,10 +51,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.wgsl
index d97d01e..88dd09b 100644
--- a/test/tint/builtins/gen/var/select/266aff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/266aff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn select_266aff() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_266aff();
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl b/test/tint/builtins/gen/var/select/28a27e.wgsl
index df721bd..aee515c 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn select(vec<3, u32>, vec<3, u32>, vec<3, bool>) -> vec<3, u32>
 fn select_28a27e() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec3<u32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_28a27e();
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.dxc.hlsl
index aae0779..8b14c74 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_28a27e() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_28a27e()));
   return;
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.fxc.hlsl
index aae0779..8b14c74 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_28a27e() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_28a27e()));
   return;
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.glsl
index f7be626..7f55856 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.glsl
@@ -7,6 +7,11 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 select_28a27e() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -15,11 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -40,6 +40,11 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 select_28a27e() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -48,11 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.wgsl
index f50a1b8..f14a550 100644
--- a/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/28a27e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn select_28a27e() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_28a27e();
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl
index 785235f..8da7371 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<3, bool>, vec<3, bool>, bool) -> vec<3, bool>
 fn select_3c25ce() -> i32{
   var arg_0 = vec3<bool>(true);
@@ -43,9 +47,6 @@
   var res: vec3<bool> = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == vec3<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_3c25ce();
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.dxc.hlsl
index 6a8d97a..7ddc998 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_3c25ce() {
   bool3 arg_0 = (true).xxx;
   bool3 arg_1 = (true).xxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_3c25ce()));
   return;
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.fxc.hlsl
index 6a8d97a..7ddc998 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_3c25ce() {
   bool3 arg_0 = (true).xxx;
   bool3 arg_1 = (true).xxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_3c25ce()));
   return;
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.glsl
index 3139c3e..5c1fa05 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_3c25ce() {
   bvec3 arg_0 = bvec3(true);
   bvec3 arg_1 = bvec3(true);
@@ -10,10 +14,6 @@
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_3c25ce() {
   bvec3 arg_0 = bvec3(true);
   bvec3 arg_1 = bvec3(true);
@@ -37,10 +41,6 @@
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.wgsl
index 7418551..8a013b6 100644
--- a/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/3c25ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_3c25ce() -> i32 {
   var arg_0 = vec3<bool>(true);
   var arg_1 = vec3<bool>(true);
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == vec3<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_3c25ce();
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl b/test/tint/builtins/gen/var/select/416e14.wgsl
index 65f3f42..c67bf5b7 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn select(f32, f32, bool) -> f32
 fn select_416e14() -> f32{
   var arg_0 = 1.f;
@@ -43,8 +46,6 @@
   var res: f32 = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_416e14();
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.dxc.hlsl
index 68d097e..e073a3a 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float select_416e14() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_416e14()));
   return;
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.fxc.hlsl
index 68d097e..e073a3a 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float select_416e14() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_416e14()));
   return;
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.glsl
index 1927c21..df8234a 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float select_416e14() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float select_416e14() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.wgsl
index 45d31b9..0e7003c 100644
--- a/test/tint/builtins/gen/var/select/416e14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/416e14.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn select_416e14() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_416e14();
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl b/test/tint/builtins/gen/var/select/51b047.wgsl
index 8250df5..cbcb97d 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn select(vec<2, u32>, vec<2, u32>, bool) -> vec<2, u32>
 fn select_51b047() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec2<u32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_51b047();
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.dxc.hlsl
index eb0b390..14f4f1d 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_51b047() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_51b047()));
   return;
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.fxc.hlsl
index eb0b390..14f4f1d 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 select_51b047() {
   uint2 arg_0 = (1u).xx;
   uint2 arg_1 = (1u).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_51b047()));
   return;
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.glsl
index d5db234..fe7347e 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_51b047() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 select_51b047() {
   uvec2 arg_0 = uvec2(1u);
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.wgsl
index b3bd8c8..941462c 100644
--- a/test/tint/builtins/gen/var/select/51b047.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/51b047.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn select_51b047() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   var arg_1 = vec2<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_51b047();
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl b/test/tint/builtins/gen/var/select/53d518.wgsl
index 2962373..1f237b1 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn select(vec<3, f16>, vec<3, f16>, vec<3, bool>) -> vec<3, f16>
 fn select_53d518() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_53d518();
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.dxc.hlsl
index 4e30b05..00a6909 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> select_53d518() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, select_53d518());
   return;
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.glsl
index 2edda45..347f941 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.glsl
@@ -8,6 +8,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_53d518() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -41,6 +41,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 select_53d518() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.wgsl
index 6cde904..cc8835f 100644
--- a/test/tint/builtins/gen/var/select/53d518.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/53d518.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn select_53d518() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_53d518();
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl b/test/tint/builtins/gen/var/select/713567.wgsl
index 4b19419..2d78c6e 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn select(vec<4, f32>, vec<4, f32>, bool) -> vec<4, f32>
 fn select_713567() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_713567();
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.dxc.hlsl
index 1e9461d..16fe970 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_713567() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_713567()));
   return;
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.fxc.hlsl
index 1e9461d..16fe970 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_713567() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_713567()));
   return;
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.glsl
index 0c00076..b37361c 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_713567() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_713567() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/713567.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/713567.wgsl.expected.wgsl
index e2a1aee..6dac214 100644
--- a/test/tint/builtins/gen/var/select/713567.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/713567.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn select_713567() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_713567();
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl b/test/tint/builtins/gen/var/select/78be5f.wgsl
index 893aab0..6494bd1 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn select(vec<3, f32>, vec<3, f32>, bool) -> vec<3, f32>
 fn select_78be5f() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_78be5f();
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.dxc.hlsl
index 5303dc0..2a574d8 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_78be5f() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_78be5f()));
   return;
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.fxc.hlsl
index 5303dc0..2a574d8 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_78be5f() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_78be5f()));
   return;
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.glsl
index f7e2fec..880bd82 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 select_78be5f() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 select_78be5f() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.wgsl
index cc47db8..7c9f255 100644
--- a/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/78be5f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn select_78be5f() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_78be5f();
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl
index 183c605..0315aba 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<3, bool>, vec<3, bool>, vec<3, bool>) -> vec<3, bool>
 fn select_80a9a9() -> i32{
   var arg_0 = vec3<bool>(true);
@@ -43,9 +47,6 @@
   var res: vec3<bool> = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == vec3<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_80a9a9();
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.dxc.hlsl
index 82ef009..de6cc67 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_80a9a9() {
   bool3 arg_0 = (true).xxx;
   bool3 arg_1 = (true).xxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_80a9a9()));
   return;
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.fxc.hlsl
index 82ef009..de6cc67 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_80a9a9() {
   bool3 arg_0 = (true).xxx;
   bool3 arg_1 = (true).xxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_80a9a9()));
   return;
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.glsl
index ad0f258..52e3285 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_80a9a9() {
   bvec3 arg_0 = bvec3(true);
   bvec3 arg_1 = bvec3(true);
@@ -15,10 +19,6 @@
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_80a9a9() {
   bvec3 arg_0 = bvec3(true);
   bvec3 arg_1 = bvec3(true);
@@ -47,10 +51,6 @@
   return (all(equal(res, bvec3(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.wgsl
index 78bd756..7ead4e2 100644
--- a/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/80a9a9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_80a9a9() -> i32 {
   var arg_0 = vec3<bool>(true);
   var arg_1 = vec3<bool>(true);
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == vec3<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_80a9a9();
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl b/test/tint/builtins/gen/var/select/830dd9.wgsl
index 8a12499..5d43c39 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn select(vec<4, f16>, vec<4, f16>, bool) -> vec<4, f16>
 fn select_830dd9() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_830dd9();
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.dxc.hlsl
index e8ae89d..20ea8c2 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> select_830dd9() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, select_830dd9());
   return;
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.glsl
index d94e3c2..85bcca7 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_830dd9() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_830dd9() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.wgsl
index 39e7ba0..e0e1453 100644
--- a/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/830dd9.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn select_830dd9() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_830dd9();
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl
index 76dc6ba..70c6117 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn select(vec<2, f16>, vec<2, f16>, bool) -> vec<2, f16>
 fn select_86f9bd() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_86f9bd();
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.dxc.hlsl
index 43695c4..d5a7cdd 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> select_86f9bd() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, select_86f9bd());
   return;
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.glsl
index aa1ebbb..650b484 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_86f9bd() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_86f9bd() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.wgsl
index 8c206fc..cb4ffb9 100644
--- a/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/86f9bd.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn select_86f9bd() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_86f9bd();
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl
index 5d68041..16ee2a3 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn select(vec<3, i32>, vec<3, i32>, bool) -> vec<3, i32>
 fn select_8fa62c() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec3<i32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_8fa62c();
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.dxc.hlsl
index d47d13a..c463dde 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_8fa62c() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_8fa62c()));
   return;
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.fxc.hlsl
index d47d13a..c463dde 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 select_8fa62c() {
   int3 arg_0 = (1).xxx;
   int3 arg_1 = (1).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_8fa62c()));
   return;
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.glsl
index 55b2721..2f28e73 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 select_8fa62c() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 select_8fa62c() {
   ivec3 arg_0 = ivec3(1);
   ivec3 arg_1 = ivec3(1);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.wgsl
index 6365546..6a774e4 100644
--- a/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/8fa62c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn select_8fa62c() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var arg_1 = vec3<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_8fa62c();
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl b/test/tint/builtins/gen/var/select/99f883.wgsl
index 482e959..bf77b05 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn select(u32, u32, bool) -> u32
 fn select_99f883() -> u32{
   var arg_0 = 1u;
@@ -43,8 +46,6 @@
   var res: u32 = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_99f883();
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.dxc.hlsl
index 92eb500..c1469de 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint select_99f883() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_99f883()));
   return;
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.fxc.hlsl
index 92eb500..c1469de 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint select_99f883() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_99f883()));
   return;
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.glsl
index 01a7018..646ab31 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint select_99f883() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint select_99f883() {
   uint arg_0 = 1u;
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.wgsl
index 914c80f..e40e1d2 100644
--- a/test/tint/builtins/gen/var/select/99f883.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/99f883.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn select_99f883() -> u32 {
   var arg_0 = 1u;
   var arg_1 = 1u;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_99f883();
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl b/test/tint/builtins/gen/var/select/a081f1.wgsl
index 1812346..46a1944 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn select(vec<4, f16>, vec<4, f16>, vec<4, bool>) -> vec<4, f16>
 fn select_a081f1() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a081f1();
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.dxc.hlsl
index 825523d..b117745 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> select_a081f1() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, select_a081f1());
   return;
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.glsl
index 7e0c304..97cc8f9 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.glsl
@@ -8,6 +8,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_a081f1() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -41,6 +41,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 select_a081f1() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.wgsl
index c98e760..eccc984 100644
--- a/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/a081f1.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn select_a081f1() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a081f1();
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl b/test/tint/builtins/gen/var/select/a2860e.wgsl
index 93e3282..3434050 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn select(vec<4, i32>, vec<4, i32>, vec<4, bool>) -> vec<4, i32>
 fn select_a2860e() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec4<i32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a2860e();
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.dxc.hlsl
index baba86d..313bcb5 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_a2860e() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_a2860e()));
   return;
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.fxc.hlsl
index baba86d..313bcb5 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_a2860e() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_a2860e()));
   return;
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.glsl
index 3402e66..a76c004 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_a2860e() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_a2860e() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -47,10 +51,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.wgsl
index 26fb0ef..381b78e 100644
--- a/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/a2860e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn select_a2860e() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_a2860e();
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl b/test/tint/builtins/gen/var/select/ab069f.wgsl
index 62575bd..abe574f 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn select(vec<4, i32>, vec<4, i32>, bool) -> vec<4, i32>
 fn select_ab069f() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec4<i32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ab069f();
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.dxc.hlsl
index 5ab0c26..88eec27 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_ab069f() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_ab069f()));
   return;
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.fxc.hlsl
index 5ab0c26..88eec27 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 select_ab069f() {
   int4 arg_0 = (1).xxxx;
   int4 arg_1 = (1).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_ab069f()));
   return;
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.glsl
index 9ea45e0..0ed0bcd 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_ab069f() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 select_ab069f() {
   ivec4 arg_0 = ivec4(1);
   ivec4 arg_1 = ivec4(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.wgsl
index 80d6cd8..50c34fc 100644
--- a/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/ab069f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn select_ab069f() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var arg_1 = vec4<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ab069f();
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl b/test/tint/builtins/gen/var/select/b04721.wgsl
index 5f7c608..f4ca7fb 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn select(vec<3, u32>, vec<3, u32>, bool) -> vec<3, u32>
 fn select_b04721() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec3<u32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_b04721();
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.dxc.hlsl
index d6fa63b..60a3825 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_b04721() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_b04721()));
   return;
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.fxc.hlsl
index d6fa63b..60a3825 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 select_b04721() {
   uint3 arg_0 = (1u).xxx;
   uint3 arg_1 = (1u).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_b04721()));
   return;
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.glsl
index 6509d19..96be321 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 select_b04721() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uvec3 select_b04721() {
   uvec3 arg_0 = uvec3(1u);
   uvec3 arg_1 = uvec3(1u);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.wgsl
index 99b5b8f..74a81dc 100644
--- a/test/tint/builtins/gen/var/select/b04721.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/b04721.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn select_b04721() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   var arg_1 = vec3<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_b04721();
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl b/test/tint/builtins/gen/var/select/bb447f.wgsl
index e5c7601..5f3cd02 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn select(vec<2, i32>, vec<2, i32>, bool) -> vec<2, i32>
 fn select_bb447f() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -43,8 +46,6 @@
   var res: vec2<i32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb447f();
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.dxc.hlsl
index 7dcd1b9..c8a9e14 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_bb447f() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bb447f()));
   return;
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.fxc.hlsl
index 7dcd1b9..c8a9e14 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 select_bb447f() {
   int2 arg_0 = (1).xx;
   int2 arg_1 = (1).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bb447f()));
   return;
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.glsl
index e6b68f8..4238b6a 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_bb447f() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 select_bb447f() {
   ivec2 arg_0 = ivec2(1);
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.wgsl
index 9926b20..d0a30dd 100644
--- a/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/bb447f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn select_bb447f() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var arg_1 = vec2<i32>(1i);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb447f();
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl
index eab21fa..ffd65de 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn select(vec<4, f32>, vec<4, f32>, vec<4, bool>) -> vec<4, f32>
 fn select_bb8aae() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb8aae();
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.dxc.hlsl
index 8723b45..0a6eef7 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_bb8aae() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_bb8aae()));
   return;
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.fxc.hlsl
index 8723b45..0a6eef7 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 select_bb8aae() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_bb8aae()));
   return;
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.glsl
index 77893d6..4fcdc02 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_bb8aae() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 select_bb8aae() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -47,10 +51,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.wgsl
index d6ceb08..7f2d7db 100644
--- a/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/bb8aae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn select_bb8aae() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bb8aae();
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl
index 750bb63..75e640b 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn select(vec<2, f32>, vec<2, f32>, bool) -> vec<2, f32>
 fn select_bf3d29() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bf3d29();
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.dxc.hlsl
index b880f81..867aa5e 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_bf3d29() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bf3d29()));
   return;
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.fxc.hlsl
index b880f81..867aa5e 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 select_bf3d29() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(select_bf3d29()));
   return;
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.glsl
index 03e513f..8979034 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_bf3d29() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 select_bf3d29() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.wgsl
index ae56a22..d9e0dbb 100644
--- a/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/bf3d29.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn select_bf3d29() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_bf3d29();
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl
index 13d1102..1acc3ae 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(bool, bool, bool) -> bool
 fn select_c31f9e() -> i32{
   var arg_0 = true;
@@ -43,9 +47,6 @@
   var res: bool = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == bool()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c31f9e();
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.dxc.hlsl
index 5f98d43..0caadac 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c31f9e() {
   bool arg_0 = true;
   bool arg_1 = true;
@@ -6,8 +8,6 @@
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c31f9e()));
   return;
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.fxc.hlsl
index 5f98d43..0caadac 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c31f9e() {
   bool arg_0 = true;
   bool arg_1 = true;
@@ -6,8 +8,6 @@
   return (all((res == false)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c31f9e()));
   return;
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.glsl
index 2f8f06f..d4db801 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c31f9e() {
   bool arg_0 = true;
   bool arg_1 = true;
@@ -10,10 +14,6 @@
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c31f9e() {
   bool arg_0 = true;
   bool arg_1 = true;
@@ -37,10 +41,6 @@
   return ((res == false) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.wgsl
index e800e94..da4aba7 100644
--- a/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/c31f9e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_c31f9e() -> i32 {
   var arg_0 = true;
   var arg_1 = true;
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == bool())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c31f9e();
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl
index d0c54d1..6d9b850 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<4, bool>, vec<4, bool>, bool) -> vec<4, bool>
 fn select_c41bd1() -> i32{
   var arg_0 = vec4<bool>(true);
@@ -43,9 +47,6 @@
   var res: vec4<bool> = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == vec4<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c41bd1();
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.dxc.hlsl
index acd6fa8..2ae4f20 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c41bd1() {
   bool4 arg_0 = (true).xxxx;
   bool4 arg_1 = (true).xxxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c41bd1()));
   return;
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.fxc.hlsl
index acd6fa8..2ae4f20 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_c41bd1() {
   bool4 arg_0 = (true).xxxx;
   bool4 arg_1 = (true).xxxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_c41bd1()));
   return;
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.glsl
index efab8b3..bac9706 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c41bd1() {
   bvec4 arg_0 = bvec4(true);
   bvec4 arg_1 = bvec4(true);
@@ -10,10 +14,6 @@
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_c41bd1() {
   bvec4 arg_0 = bvec4(true);
   bvec4 arg_1 = bvec4(true);
@@ -37,10 +41,6 @@
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.wgsl
index 083c5c1..0762dd3 100644
--- a/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/c41bd1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_c41bd1() -> i32 {
   var arg_0 = vec4<bool>(true);
   var arg_1 = vec4<bool>(true);
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == vec4<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c41bd1();
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl
index c2bed93..47059f7 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn select(vec<4, u32>, vec<4, u32>, vec<4, bool>) -> vec<4, u32>
 fn select_c4a4ef() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -43,8 +46,6 @@
   var res: vec4<u32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c4a4ef();
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.dxc.hlsl
index dab65a1..4413975 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_c4a4ef() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_c4a4ef()));
   return;
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.fxc.hlsl
index dab65a1..4413975 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 select_c4a4ef() {
   uint4 arg_0 = (1u).xxxx;
   uint4 arg_1 = (1u).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(select_c4a4ef()));
   return;
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.glsl
index b26f96a..22536d2 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_c4a4ef() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -15,10 +19,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 select_c4a4ef() {
   uvec4 arg_0 = uvec4(1u);
   uvec4 arg_1 = uvec4(1u);
@@ -47,10 +51,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.wgsl
index c59ef78..c2e5568 100644
--- a/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/c4a4ef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn select_c4a4ef() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   var arg_1 = vec4<u32>(1u);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_c4a4ef();
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl b/test/tint/builtins/gen/var/select/cb9301.wgsl
index f1ea9e3..92d6dfd 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<2, bool>, vec<2, bool>, vec<2, bool>) -> vec<2, bool>
 fn select_cb9301() -> i32{
   var arg_0 = vec2<bool>(true);
@@ -43,9 +47,6 @@
   var res: vec2<bool> = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == vec2<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_cb9301();
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.dxc.hlsl
index 7efbc2c..2fd80b6 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_cb9301() {
   bool2 arg_0 = (true).xx;
   bool2 arg_1 = (true).xx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_cb9301()));
   return;
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.fxc.hlsl
index 7efbc2c..2fd80b6 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_cb9301() {
   bool2 arg_0 = (true).xx;
   bool2 arg_1 = (true).xx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_cb9301()));
   return;
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.glsl
index d82e883..911d5fd 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_cb9301() {
   bvec2 arg_0 = bvec2(true);
   bvec2 arg_1 = bvec2(true);
@@ -15,10 +19,6 @@
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_cb9301() {
   bvec2 arg_0 = bvec2(true);
   bvec2 arg_1 = bvec2(true);
@@ -47,10 +51,6 @@
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.wgsl
index f13d69a..2842b4b 100644
--- a/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/cb9301.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_cb9301() -> i32 {
   var arg_0 = vec2<bool>(true);
   var arg_1 = vec2<bool>(true);
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == vec2<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_cb9301();
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl b/test/tint/builtins/gen/var/select/e3e028.wgsl
index a066346..5050f59 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<4, bool>, vec<4, bool>, vec<4, bool>) -> vec<4, bool>
 fn select_e3e028() -> i32{
   var arg_0 = vec4<bool>(true);
@@ -43,9 +47,6 @@
   var res: vec4<bool> = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == vec4<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_e3e028();
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.dxc.hlsl
index 067dee7..157763d 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_e3e028() {
   bool4 arg_0 = (true).xxxx;
   bool4 arg_1 = (true).xxxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_e3e028()));
   return;
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.fxc.hlsl
index 067dee7..157763d 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_e3e028() {
   bool4 arg_0 = (true).xxxx;
   bool4 arg_1 = (true).xxxx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xxxx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_e3e028()));
   return;
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.glsl
index 6994e38..a1341e2 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.glsl
@@ -7,6 +7,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_e3e028() {
   bvec4 arg_0 = bvec4(true);
   bvec4 arg_1 = bvec4(true);
@@ -15,10 +19,6 @@
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -39,6 +39,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_e3e028() {
   bvec4 arg_0 = bvec4(true);
   bvec4 arg_1 = bvec4(true);
@@ -47,10 +51,6 @@
   return (all(equal(res, bvec4(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.wgsl
index bb6044f..d2a8c4e 100644
--- a/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/e3e028.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_e3e028() -> i32 {
   var arg_0 = vec4<bool>(true);
   var arg_1 = vec4<bool>(true);
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == vec4<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_e3e028();
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl
index 7500c3c..e5f2e70 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn select(vec<3, f32>, vec<3, f32>, vec<3, bool>) -> vec<3, f32>
 fn select_ebfea2() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ebfea2();
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.dxc.hlsl
index 8041b58..fb2c349 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_ebfea2() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_ebfea2()));
   return;
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.fxc.hlsl
index 8041b58..fb2c349 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 select_ebfea2() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(select_ebfea2()));
   return;
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.glsl
index 72b0384..f8c08d7f 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.glsl
@@ -7,6 +7,11 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 select_ebfea2() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -15,11 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -40,6 +40,11 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 select_ebfea2() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -48,11 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.wgsl
index baa3713..addfa64 100644
--- a/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/ebfea2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn select_ebfea2() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ebfea2();
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl
index a8798b7..cca8851 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn select(vec<2, f16>, vec<2, f16>, vec<2, bool>) -> vec<2, f16>
 fn select_ed7c13() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed7c13();
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.dxc.hlsl
index 3e396a3..a79f3f4 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> select_ed7c13() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, select_ed7c13());
   return;
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.glsl
index e0695f5..c85e846 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.glsl
@@ -8,6 +8,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_ed7c13() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -16,10 +20,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -41,6 +41,10 @@
 }
 
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 select_ed7c13() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -49,10 +53,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.wgsl
index 5478764..4437091 100644
--- a/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/ed7c13.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn select_ed7c13() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed7c13();
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl
index 068832a..d8bc958 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn select(i32, i32, bool) -> i32
 fn select_ed8a15() -> i32{
   var arg_0 = 1i;
@@ -43,8 +46,6 @@
   var res: i32 = select(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed8a15();
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.dxc.hlsl
index 4f83ee0..7a994b4 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_ed8a15() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_ed8a15()));
   return;
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.fxc.hlsl
index 4f83ee0..7a994b4 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_ed8a15() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_ed8a15()));
   return;
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.glsl
index 8e45a01..9745c57 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_ed8a15() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_ed8a15() {
   int arg_0 = 1;
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.wgsl
index 42cd4e0..c887bf1 100644
--- a/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/ed8a15.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_ed8a15() -> i32 {
   var arg_0 = 1i;
   var arg_1 = 1i;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_ed8a15();
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl
index b31f79c..8b464c8 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl
@@ -35,6 +35,10 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn select(vec<2, bool>, vec<2, bool>, bool) -> vec<2, bool>
 fn select_fb7e53() -> i32{
   var arg_0 = vec2<bool>(true);
@@ -43,9 +47,6 @@
   var res: vec2<bool> = select(arg_0, arg_1, arg_2);
   return select(0, 1, all(res == vec2<bool>()));
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_fb7e53();
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.dxc.hlsl
index 6ce8ef3..e983c66 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_fb7e53() {
   bool2 arg_0 = (true).xx;
   bool2 arg_1 = (true).xx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_fb7e53()));
   return;
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.fxc.hlsl
index 6ce8ef3..e983c66 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int select_fb7e53() {
   bool2 arg_0 = (true).xx;
   bool2 arg_1 = (true).xx;
@@ -6,8 +8,6 @@
   return (all((res == (false).xx)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(select_fb7e53()));
   return;
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.glsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.glsl
index f7a67ab..1d7ff8d 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_fb7e53() {
   bvec2 arg_0 = bvec2(true);
   bvec2 arg_1 = bvec2(true);
@@ -10,10 +14,6 @@
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int select_fb7e53() {
   bvec2 arg_0 = bvec2(true);
   bvec2 arg_1 = bvec2(true);
@@ -37,10 +41,6 @@
   return (all(equal(res, bvec2(false))) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.wgsl b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.wgsl
index 98c23b0..9659957 100644
--- a/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/select/fb7e53.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn select_fb7e53() -> i32 {
   var arg_0 = vec2<bool>(true);
   var arg_1 = vec2<bool>(true);
@@ -6,8 +8,6 @@
   return select(0, 1, all((res == vec2<bool>())));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = select_fb7e53();
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl b/test/tint/builtins/gen/var/sign/159665.wgsl
index 350152e..25e22bd 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sign(vec<3, f32>) -> vec<3, f32>
 fn sign_159665() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_159665();
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.dxc.hlsl
index b0a2e60..4b60fe8 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sign_159665() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = float3(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_159665()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.fxc.hlsl
index b0a2e60..4b60fe8 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sign_159665() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = float3(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_159665()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.glsl
index 9a1185e..09370ad 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sign_159665() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sign_159665() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.wgsl
index 688b85f..e66670e 100644
--- a/test/tint/builtins/gen/var/sign/159665.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/159665.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sign_159665() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_159665();
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl b/test/tint/builtins/gen/var/sign/160933.wgsl
index 7d7cf4b..57d295a 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sign(vec<4, f16>) -> vec<4, f16>
 fn sign_160933() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_160933();
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.dxc.hlsl
index 1904a4b..440e580 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sign_160933() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = vector<float16_t, 4>(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sign_160933());
   return;
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.glsl
index 2391e78..06bd7bd 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sign_160933() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sign_160933() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.wgsl
index f1c31ff..66b6441 100644
--- a/test/tint/builtins/gen/var/sign/160933.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/160933.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sign_160933() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_160933();
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl
index 574d1bf..5ad4756 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn sign(i32) -> i32
 fn sign_3233fa() -> i32{
   var arg_0 = 1i;
   var res: i32 = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_3233fa();
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.dxc.hlsl
index e696b75..e9031db 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int sign_3233fa() {
   int arg_0 = 1;
   int res = int(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_3233fa()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.fxc.hlsl
index e696b75..e9031db 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int sign_3233fa() {
   int arg_0 = 1;
   int res = int(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_3233fa()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.glsl
index 62492cc..fd0e76b 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int sign_3233fa() {
   int arg_0 = 1;
   int res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int sign_3233fa() {
   int arg_0 = 1;
   int res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.wgsl
index 9ffa5ae..258e00d 100644
--- a/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/3233fa.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn sign_3233fa() -> i32 {
   var arg_0 = 1i;
   var res : i32 = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_3233fa();
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl b/test/tint/builtins/gen/var/sign/58d779.wgsl
index 1edf46d..b785e89 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn sign(vec<4, i32>) -> vec<4, i32>
 fn sign_58d779() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
   var res: vec4<i32> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_58d779();
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.dxc.hlsl
index 1fa9b71..9231d746 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 sign_58d779() {
   int4 arg_0 = (1).xxxx;
   int4 res = int4(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_58d779()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.fxc.hlsl
index 1fa9b71..9231d746 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 sign_58d779() {
   int4 arg_0 = (1).xxxx;
   int4 res = int4(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_58d779()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.glsl
index 94660d9..899e0e3 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 sign_58d779() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 sign_58d779() {
   ivec4 arg_0 = ivec4(1);
   ivec4 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.wgsl
index 0c75a2b..0931a28 100644
--- a/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/58d779.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn sign_58d779() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   var res : vec4<i32> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_58d779();
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl
index 9edda95..418d0d2 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sign(vec<3, f16>) -> vec<3, f16>
 fn sign_5d283a() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_5d283a();
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.dxc.hlsl
index a177f53..8781436 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sign_5d283a() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = vector<float16_t, 3>(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sign_5d283a());
   return;
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.glsl
index 9f3bab2..51452be 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sign_5d283a() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sign_5d283a() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.wgsl
index 4a8df4a..8db24d4 100644
--- a/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/5d283a.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sign_5d283a() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_5d283a();
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl
index 099bd40..a2775bc 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sign(f16) -> f16
 fn sign_7c85ea() -> f16{
   var arg_0 = 1.h;
   var res: f16 = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_7c85ea();
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.dxc.hlsl
index 6042d69..233c573 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sign_7c85ea() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = float16_t(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sign_7c85ea());
   return;
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.glsl
index 6a5102a..db51391 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sign_7c85ea() {
   float16_t arg_0 = 1.0hf;
   float16_t res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sign_7c85ea() {
   float16_t arg_0 = 1.0hf;
   float16_t res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.wgsl
index 084e790..e751347 100644
--- a/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/7c85ea.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sign_7c85ea() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_7c85ea();
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl b/test/tint/builtins/gen/var/sign/926015.wgsl
index 83778d1..df20b6a 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn sign(vec<2, i32>) -> vec<2, i32>
 fn sign_926015() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
   var res: vec2<i32> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_926015();
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.dxc.hlsl
index 1e241c1..2221e4a 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 sign_926015() {
   int2 arg_0 = (1).xx;
   int2 res = int2(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_926015()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.fxc.hlsl
index 1e241c1..2221e4a 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 sign_926015() {
   int2 arg_0 = (1).xx;
   int2 res = int2(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_926015()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.glsl
index 9394bde..58fe4aa 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 sign_926015() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec2 inner;
+} prevent_dce;
+
 ivec2 sign_926015() {
   ivec2 arg_0 = ivec2(1);
   ivec2 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.wgsl
index 0afc85e..605a5a4 100644
--- a/test/tint/builtins/gen/var/sign/926015.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/926015.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn sign_926015() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   var res : vec2<i32> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_926015();
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl
index 21e9dad..d1b84a5 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn sign(vec<3, i32>) -> vec<3, i32>
 fn sign_9603b1() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
   var res: vec3<i32> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_9603b1();
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.dxc.hlsl
index b53f997..98a943c 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 sign_9603b1() {
   int3 arg_0 = (1).xxx;
   int3 res = int3(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_9603b1()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.fxc.hlsl
index b53f997..98a943c 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 sign_9603b1() {
   int3 arg_0 = (1).xxx;
   int3 res = int3(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sign_9603b1()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.glsl
index ae6b929..1c147a0 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 sign_9603b1() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec3 inner;
+  uint pad;
+} prevent_dce;
+
 ivec3 sign_9603b1() {
   ivec3 arg_0 = ivec3(1);
   ivec3 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.wgsl
index a1752e7..60e2a86 100644
--- a/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/9603b1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn sign_9603b1() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   var res : vec3<i32> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_9603b1();
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl
index 604a9b7..1e683b4 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sign(vec<4, f32>) -> vec<4, f32>
 fn sign_b8f634() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_b8f634();
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.dxc.hlsl
index 8fb8ec4..cad748b 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sign_b8f634() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = float4(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_b8f634()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.fxc.hlsl
index 8fb8ec4..cad748b 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sign_b8f634() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = float4(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sign_b8f634()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.glsl
index c3c1bdb..fc6d4b2 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sign_b8f634() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sign_b8f634() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.wgsl
index f377a17..7adca6a 100644
--- a/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/b8f634.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sign_b8f634() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_b8f634();
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl
index e73d6d7..0bb3390 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sign(vec<2, f16>) -> vec<2, f16>
 fn sign_ccdb3c() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_ccdb3c();
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.dxc.hlsl
index a70aff1..33b6f91 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sign_ccdb3c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = vector<float16_t, 2>(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sign_ccdb3c());
   return;
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.glsl
index a6e1499..f5bd051 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sign_ccdb3c() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sign_ccdb3c() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.wgsl
index 2ae893c..ad17554 100644
--- a/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/ccdb3c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sign_ccdb3c() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_ccdb3c();
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl
index 1ae3700..832f293 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sign(vec<2, f32>) -> vec<2, f32>
 fn sign_d065d8() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_d065d8();
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.dxc.hlsl
index 3739bd3..fca179a 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sign_d065d8() {
   float2 arg_0 = (1.0f).xx;
   float2 res = float2(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_d065d8()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.fxc.hlsl
index 3739bd3..fca179a 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sign_d065d8() {
   float2 arg_0 = (1.0f).xx;
   float2 res = float2(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sign_d065d8()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.glsl
index 9d38568..7958eae 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sign_d065d8() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sign_d065d8() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.wgsl
index 01f8adb..0be80c1 100644
--- a/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/d065d8.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sign_d065d8() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_d065d8();
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl
index 3535a2b..f6def4e 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sign(f32) -> f32
 fn sign_dd790e() -> f32{
   var arg_0 = 1.f;
   var res: f32 = sign(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_dd790e();
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.dxc.hlsl
index 9334b70..7da5377 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sign_dd790e() {
   float arg_0 = 1.0f;
   float res = float(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_dd790e()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.fxc.hlsl
index 9334b70..7da5377 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sign_dd790e() {
   float arg_0 = 1.0f;
   float res = float(sign(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sign_dd790e()));
   return;
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.glsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.glsl
index df775cf..3834174 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sign_dd790e() {
   float arg_0 = 1.0f;
   float res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sign_dd790e() {
   float arg_0 = 1.0f;
   float res = sign(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.wgsl
index fb9e98e..f061cfc 100644
--- a/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sign/dd790e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sign_dd790e() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = sign(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sign_dd790e();
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl b/test/tint/builtins/gen/var/sin/01f241.wgsl
index e91d76b..611c350 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sin(vec<3, f32>) -> vec<3, f32>
 fn sin_01f241() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.57079632679f);
   var res: vec3<f32> = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_01f241();
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl
index aa0fb08..15be23b 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sin_01f241() {
   float3 arg_0 = (1.57079637050628662109f).xxx;
   float3 res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sin_01f241()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl
index aa0fb08..15be23b 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sin_01f241() {
   float3 arg_0 = (1.57079637050628662109f).xxx;
   float3 res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sin_01f241()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl
index 77730cd..e162ba8 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sin_01f241() {
   vec3 arg_0 = vec3(1.57079637050628662109f);
   vec3 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sin_01f241() {
   vec3 arg_0 = vec3(1.57079637050628662109f);
   vec3 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl
index d5d18ea..a01a8a5 100644
--- a/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/01f241.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sin_01f241() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.57079637050628662109f);
   var res : vec3<f32> = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_01f241();
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl
index 1743069..ab4dae7 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sin(vec<3, f16>) -> vec<3, f16>
 fn sin_2c903b() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.57079632679h);
   var res: vec3<f16> = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_2c903b();
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl
index 8c4c35c..50a0384 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sin_2c903b() {
   vector<float16_t, 3> arg_0 = (float16_t(1.5703125h)).xxx;
   vector<float16_t, 3> res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sin_2c903b());
   return;
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl
index 712f4f0..4055a2c 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sin_2c903b() {
   f16vec3 arg_0 = f16vec3(1.5703125hf);
   f16vec3 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sin_2c903b() {
   f16vec3 arg_0 = f16vec3(1.5703125hf);
   f16vec3 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl
index c12d2a7..ea39608 100644
--- a/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/2c903b.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sin_2c903b() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.5703125h);
   var res : vec3<f16> = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_2c903b();
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl
index 46e84c1..56be2e0 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sin(vec<2, f16>) -> vec<2, f16>
 fn sin_3cca11() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.57079632679h);
   var res: vec2<f16> = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_3cca11();
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl
index 5d248ba..e7aef56 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sin_3cca11() {
   vector<float16_t, 2> arg_0 = (float16_t(1.5703125h)).xx;
   vector<float16_t, 2> res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sin_3cca11());
   return;
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl
index e8312ee..7a7b5fe 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sin_3cca11() {
   f16vec2 arg_0 = f16vec2(1.5703125hf);
   f16vec2 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sin_3cca11() {
   f16vec2 arg_0 = f16vec2(1.5703125hf);
   f16vec2 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl
index 6e62f45..58c61c4 100644
--- a/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/3cca11.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sin_3cca11() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.5703125h);
   var res : vec2<f16> = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_3cca11();
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl
index 95acb46..f8298d7 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sin(vec<4, f32>) -> vec<4, f32>
 fn sin_4e3979() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.57079632679f);
   var res: vec4<f32> = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_4e3979();
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl
index 98b78b3..9ea9b84 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sin_4e3979() {
   float4 arg_0 = (1.57079637050628662109f).xxxx;
   float4 res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sin_4e3979()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl
index 98b78b3..9ea9b84 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sin_4e3979() {
   float4 arg_0 = (1.57079637050628662109f).xxxx;
   float4 res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sin_4e3979()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl
index 55b5f55..099b55b 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sin_4e3979() {
   vec4 arg_0 = vec4(1.57079637050628662109f);
   vec4 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sin_4e3979() {
   vec4 arg_0 = vec4(1.57079637050628662109f);
   vec4 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl
index d968f83..7238cee 100644
--- a/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/4e3979.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sin_4e3979() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.57079637050628662109f);
   var res : vec4<f32> = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_4e3979();
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl
index 671b954..591aff0 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sin(vec<4, f16>) -> vec<4, f16>
 fn sin_5c0712() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.57079632679h);
   var res: vec4<f16> = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_5c0712();
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl
index d7ef99d..e381688 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sin_5c0712() {
   vector<float16_t, 4> arg_0 = (float16_t(1.5703125h)).xxxx;
   vector<float16_t, 4> res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sin_5c0712());
   return;
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl
index 4a79ed0..05c662e 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sin_5c0712() {
   f16vec4 arg_0 = f16vec4(1.5703125hf);
   f16vec4 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sin_5c0712() {
   f16vec4 arg_0 = f16vec4(1.5703125hf);
   f16vec4 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl
index 66bd379..8a0b152 100644
--- a/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/5c0712.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sin_5c0712() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.5703125h);
   var res : vec4<f16> = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_5c0712();
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl
index 1c2a0fe..1cb76db 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sin(f16) -> f16
 fn sin_66a59f() -> f16{
   var arg_0 = 1.57079632679h;
   var res: f16 = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_66a59f();
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl
index 1422ac3..e1d1b0e 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sin_66a59f() {
   float16_t arg_0 = float16_t(1.5703125h);
   float16_t res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sin_66a59f());
   return;
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl
index 82fe83d..9275bc4 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sin_66a59f() {
   float16_t arg_0 = 1.5703125hf;
   float16_t res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sin_66a59f() {
   float16_t arg_0 = 1.5703125hf;
   float16_t res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl
index 044bc71..ab022ad 100644
--- a/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/66a59f.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sin_66a59f() -> f16 {
   var arg_0 = 1.5703125h;
   var res : f16 = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_66a59f();
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl
index 61227ad..e88d24f 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sin(f32) -> f32
 fn sin_b78c91() -> f32{
   var arg_0 = 1.57079632679f;
   var res: f32 = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_b78c91();
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl
index 1f0cf55..f4f70fc 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sin_b78c91() {
   float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sin_b78c91()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl
index 1f0cf55..f4f70fc 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sin_b78c91() {
   float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sin_b78c91()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl
index d2f86ed..7160500 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sin_b78c91() {
   float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sin_b78c91() {
   float arg_0 = 1.57079637050628662109f;
   float res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl
index a15ed4e..b94a5b7 100644
--- a/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/b78c91.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sin_b78c91() -> f32 {
   var arg_0 = 1.57079637050628662109f;
   var res : f32 = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_b78c91();
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl
index d76aabe..2d527e0 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sin(vec<2, f32>) -> vec<2, f32>
 fn sin_fc8bc4() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.57079632679f);
   var res: vec2<f32> = sin(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_fc8bc4();
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl
index 58d0c9b..1df5ab5 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sin_fc8bc4() {
   float2 arg_0 = (1.57079637050628662109f).xx;
   float2 res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl
index 58d0c9b..1df5ab5 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sin_fc8bc4() {
   float2 arg_0 = (1.57079637050628662109f).xx;
   float2 res = sin(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sin_fc8bc4()));
   return;
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl
index 301d38e..0040d5f 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sin_fc8bc4() {
   vec2 arg_0 = vec2(1.57079637050628662109f);
   vec2 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sin_fc8bc4() {
   vec2 arg_0 = vec2(1.57079637050628662109f);
   vec2 res = sin(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl
index 7550e67..4cc1d08 100644
--- a/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sin/fc8bc4.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sin_fc8bc4() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.57079637050628662109f);
   var res : vec2<f32> = sin(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sin_fc8bc4();
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl
index 034cb67..f8f5d23 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sinh(vec<3, f16>) -> vec<3, f16>
 fn sinh_0908c1() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_0908c1();
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.dxc.hlsl
index 0788b51..2b0cf10 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sinh_0908c1() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sinh_0908c1());
   return;
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.glsl
index 1ea2214..31b1383 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sinh_0908c1() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sinh_0908c1() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.wgsl
index 33a7228..32d4745 100644
--- a/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/0908c1.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sinh_0908c1() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_0908c1();
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl
index ba6314c..9159169 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sinh(vec<4, f32>) -> vec<4, f32>
 fn sinh_445e33() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_445e33();
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.dxc.hlsl
index 7a2570a..92e279e 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sinh_445e33() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sinh_445e33()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.fxc.hlsl
index 7a2570a..92e279e 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sinh_445e33() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sinh_445e33()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.glsl
index ddd6305..8a9289f 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sinh_445e33() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sinh_445e33() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.wgsl
index 0a159ce..1af9628 100644
--- a/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/445e33.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sinh_445e33() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_445e33();
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl
index 4c482ca..5905738 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sinh(f16) -> f16
 fn sinh_69cce2() -> f16{
   var arg_0 = 1.h;
   var res: f16 = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_69cce2();
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.dxc.hlsl
index 25531598..a4b37a1 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sinh_69cce2() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sinh_69cce2());
   return;
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.glsl
index 13b5041..90504a0 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sinh_69cce2() {
   float16_t arg_0 = 1.0hf;
   float16_t res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sinh_69cce2() {
   float16_t arg_0 = 1.0hf;
   float16_t res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.wgsl
index 42d792a..20d6847 100644
--- a/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/69cce2.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sinh_69cce2() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_69cce2();
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl
index d77f10f..29baea9 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sinh(f32) -> f32
 fn sinh_7bb598() -> f32{
   var arg_0 = 1.f;
   var res: f32 = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_7bb598();
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.dxc.hlsl
index 15e5185..9b3db22 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sinh_7bb598() {
   float arg_0 = 1.0f;
   float res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sinh_7bb598()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.fxc.hlsl
index 15e5185..9b3db22 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sinh_7bb598() {
   float arg_0 = 1.0f;
   float res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sinh_7bb598()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.glsl
index 515aeed..fa2aab7 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sinh_7bb598() {
   float arg_0 = 1.0f;
   float res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sinh_7bb598() {
   float arg_0 = 1.0f;
   float res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.wgsl
index 3420148..147394b 100644
--- a/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/7bb598.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sinh_7bb598() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_7bb598();
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl
index b6d1a8b..3bc2bc1 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sinh(vec<2, f16>) -> vec<2, f16>
 fn sinh_924f19() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_924f19();
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.dxc.hlsl
index 4e7b08a..696740c 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sinh_924f19() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sinh_924f19());
   return;
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.glsl
index b51f107..867094e 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sinh_924f19() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sinh_924f19() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.wgsl
index 57a0e50..b54bda9 100644
--- a/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/924f19.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sinh_924f19() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_924f19();
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl
index a67cc04..2a1d9d6 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sinh(vec<2, f32>) -> vec<2, f32>
 fn sinh_b9860e() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_b9860e();
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.dxc.hlsl
index 3c818b9..83d6118 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sinh_b9860e() {
   float2 arg_0 = (1.0f).xx;
   float2 res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sinh_b9860e()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.fxc.hlsl
index 3c818b9..83d6118 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sinh_b9860e() {
   float2 arg_0 = (1.0f).xx;
   float2 res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sinh_b9860e()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.glsl
index b98a92c..7d424a0 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sinh_b9860e() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sinh_b9860e() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.wgsl
index cf547bc..8a027f9 100644
--- a/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/b9860e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sinh_b9860e() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_b9860e();
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl
index 97c100d..6bac116 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sinh(vec<4, f16>) -> vec<4, f16>
 fn sinh_ba7e25() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_ba7e25();
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.dxc.hlsl
index eaa29cd..74f21fe 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sinh_ba7e25() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sinh_ba7e25());
   return;
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.glsl
index 9fc5eb5..eb00b5e 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sinh_ba7e25() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sinh_ba7e25() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.wgsl
index 6ade087..a9bbe37 100644
--- a/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/ba7e25.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sinh_ba7e25() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_ba7e25();
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl
index 1c2f43e..c0cdc07 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sinh(vec<3, f32>) -> vec<3, f32>
 fn sinh_c9a5eb() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = sinh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_c9a5eb();
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.dxc.hlsl
index a84a6b3..e7d6d54 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sinh_c9a5eb() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.fxc.hlsl
index a84a6b3..e7d6d54 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sinh_c9a5eb() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = sinh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sinh_c9a5eb()));
   return;
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.glsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.glsl
index eec9a77..b4de9f9 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sinh_c9a5eb() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sinh_c9a5eb() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = sinh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.wgsl
index f309c24..9698f02 100644
--- a/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sinh/c9a5eb.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sinh_c9a5eb() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = sinh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sinh_c9a5eb();
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl
index 96dc505..fbe3621 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn smoothstep(vec<2, f16>, vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn smoothstep_12c031() -> vec2<f16>{
   var arg_0 = vec2<f16>(2.h);
@@ -48,8 +51,6 @@
   var res: vec2<f16> = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_12c031();
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.dxc.hlsl
index 7c94578..677283e 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> smoothstep_12c031() {
   vector<float16_t, 2> arg_0 = (float16_t(2.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(4.0h)).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, smoothstep_12c031());
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.glsl
index 0c05782..a205906 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 smoothstep_12c031() {
   f16vec2 arg_0 = f16vec2(2.0hf);
   f16vec2 arg_1 = f16vec2(4.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 smoothstep_12c031() {
   f16vec2 arg_0 = f16vec2(2.0hf);
   f16vec2 arg_1 = f16vec2(4.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.wgsl
index 93e9b13..2ff345d 100644
--- a/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/12c031.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn smoothstep_12c031() -> vec2<f16> {
   var arg_0 = vec2<f16>(2.0h);
   var arg_1 = vec2<f16>(4.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_12c031();
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl
index dfe7056..1d9ad75 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn smoothstep(vec<2, f32>, vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn smoothstep_392c19() -> vec2<f32>{
   var arg_0 = vec2<f32>(2.f);
@@ -43,8 +46,6 @@
   var res: vec2<f32> = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_392c19();
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.dxc.hlsl
index a2c2bfc..205602a 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 smoothstep_392c19() {
   float2 arg_0 = (2.0f).xx;
   float2 arg_1 = (4.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.fxc.hlsl
index a2c2bfc..205602a 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 smoothstep_392c19() {
   float2 arg_0 = (2.0f).xx;
   float2 arg_1 = (4.0f).xx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(smoothstep_392c19()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.glsl
index f2cc154..1f3fbc8 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 smoothstep_392c19() {
   vec2 arg_0 = vec2(2.0f);
   vec2 arg_1 = vec2(4.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 smoothstep_392c19() {
   vec2 arg_0 = vec2(2.0f);
   vec2 arg_1 = vec2(4.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.wgsl
index 080464e..83ccf64 100644
--- a/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/392c19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn smoothstep_392c19() -> vec2<f32> {
   var arg_0 = vec2<f32>(2.0f);
   var arg_1 = vec2<f32>(4.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_392c19();
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl
index 18ea63b..6986c74 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn smoothstep(vec<4, f32>, vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn smoothstep_40864c() -> vec4<f32>{
   var arg_0 = vec4<f32>(2.f);
@@ -43,8 +46,6 @@
   var res: vec4<f32> = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_40864c();
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.dxc.hlsl
index bb2420e..996895e 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 smoothstep_40864c() {
   float4 arg_0 = (2.0f).xxxx;
   float4 arg_1 = (4.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.fxc.hlsl
index bb2420e..996895e 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 smoothstep_40864c() {
   float4 arg_0 = (2.0f).xxxx;
   float4 arg_1 = (4.0f).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(smoothstep_40864c()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.glsl
index 7102478..fccb155 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 smoothstep_40864c() {
   vec4 arg_0 = vec4(2.0f);
   vec4 arg_1 = vec4(4.0f);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 smoothstep_40864c() {
   vec4 arg_0 = vec4(2.0f);
   vec4 arg_1 = vec4(4.0f);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.wgsl
index 6fce363..659ae74 100644
--- a/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/40864c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn smoothstep_40864c() -> vec4<f32> {
   var arg_0 = vec4<f32>(2.0f);
   var arg_1 = vec4<f32>(4.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_40864c();
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl
index a640d46..8db5798 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn smoothstep(f16, f16, f16) -> f16
 fn smoothstep_586e12() -> f16{
   var arg_0 = 2.h;
@@ -48,8 +51,6 @@
   var res: f16 = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_586e12();
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.dxc.hlsl
index e737fe2..1dbf279 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t smoothstep_586e12() {
   float16_t arg_0 = float16_t(2.0h);
   float16_t arg_1 = float16_t(4.0h);
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, smoothstep_586e12());
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.glsl
index f911769..7b7706c 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t smoothstep_586e12() {
   float16_t arg_0 = 2.0hf;
   float16_t arg_1 = 4.0hf;
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t smoothstep_586e12() {
   float16_t arg_0 = 2.0hf;
   float16_t arg_1 = 4.0hf;
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.wgsl
index 172973b..19ed0d8 100644
--- a/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/586e12.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn smoothstep_586e12() -> f16 {
   var arg_0 = 2.0h;
   var arg_1 = 4.0h;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_586e12();
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl
index 8dc471e..3a8fe27 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn smoothstep(f32, f32, f32) -> f32
 fn smoothstep_6c4975() -> f32{
   var arg_0 = 2.f;
@@ -43,8 +46,6 @@
   var res: f32 = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6c4975();
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.dxc.hlsl
index 72d0ca5..5486bc6 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float smoothstep_6c4975() {
   float arg_0 = 2.0f;
   float arg_1 = 4.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.fxc.hlsl
index 72d0ca5..5486bc6 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float smoothstep_6c4975() {
   float arg_0 = 2.0f;
   float arg_1 = 4.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(smoothstep_6c4975()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.glsl
index 6b833cd..b1041fa 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float smoothstep_6c4975() {
   float arg_0 = 2.0f;
   float arg_1 = 4.0f;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float smoothstep_6c4975() {
   float arg_0 = 2.0f;
   float arg_1 = 4.0f;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.wgsl
index ccf5759..0037a61 100644
--- a/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/6c4975.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn smoothstep_6c4975() -> f32 {
   var arg_0 = 2.0f;
   var arg_1 = 4.0f;
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6c4975();
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl
index 755c187..3379d6c 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn smoothstep(vec<3, f16>, vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn smoothstep_6e7a74() -> vec3<f16>{
   var arg_0 = vec3<f16>(2.h);
@@ -48,8 +51,6 @@
   var res: vec3<f16> = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6e7a74();
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.dxc.hlsl
index 0918401..d4b3f90 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> smoothstep_6e7a74() {
   vector<float16_t, 3> arg_0 = (float16_t(2.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(4.0h)).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, smoothstep_6e7a74());
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.glsl
index 307d701..2a8ec66 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 smoothstep_6e7a74() {
   f16vec3 arg_0 = f16vec3(2.0hf);
   f16vec3 arg_1 = f16vec3(4.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 smoothstep_6e7a74() {
   f16vec3 arg_0 = f16vec3(2.0hf);
   f16vec3 arg_1 = f16vec3(4.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.wgsl
index 72e5c36..8140ffa 100644
--- a/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/6e7a74.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn smoothstep_6e7a74() -> vec3<f16> {
   var arg_0 = vec3<f16>(2.0h);
   var arg_1 = vec3<f16>(4.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_6e7a74();
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl
index bc88665..9c8b493 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn smoothstep(vec<3, f32>, vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn smoothstep_aad1db() -> vec3<f32>{
   var arg_0 = vec3<f32>(2.f);
@@ -43,8 +46,6 @@
   var res: vec3<f32> = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_aad1db();
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.dxc.hlsl
index e6b2c0e..cb31287 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 smoothstep_aad1db() {
   float3 arg_0 = (2.0f).xxx;
   float3 arg_1 = (4.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.fxc.hlsl
index e6b2c0e..cb31287 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 smoothstep_aad1db() {
   float3 arg_0 = (2.0f).xxx;
   float3 arg_1 = (4.0f).xxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(smoothstep_aad1db()));
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.glsl
index a70c2eb..4bbbfc4 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 smoothstep_aad1db() {
   vec3 arg_0 = vec3(2.0f);
   vec3 arg_1 = vec3(4.0f);
@@ -10,11 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -30,6 +30,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 smoothstep_aad1db() {
   vec3 arg_0 = vec3(2.0f);
   vec3 arg_1 = vec3(4.0f);
@@ -38,11 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.wgsl
index a2d8ca7..dc65f0a 100644
--- a/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/aad1db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn smoothstep_aad1db() -> vec3<f32> {
   var arg_0 = vec3<f32>(2.0f);
   var arg_1 = vec3<f32>(4.0f);
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_aad1db();
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl
index fc10832..f5c3fe8 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn smoothstep(vec<4, f16>, vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn smoothstep_c43ebd() -> vec4<f16>{
   var arg_0 = vec4<f16>(2.h);
@@ -48,8 +51,6 @@
   var res: vec4<f16> = smoothstep(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_c43ebd();
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.dxc.hlsl
index 7709b60..fae19f9 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> smoothstep_c43ebd() {
   vector<float16_t, 4> arg_0 = (float16_t(2.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(4.0h)).xxxx;
@@ -6,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, smoothstep_c43ebd());
   return;
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.glsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.glsl
index 3ddcb88..5a1ff07 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 smoothstep_c43ebd() {
   f16vec4 arg_0 = f16vec4(2.0hf);
   f16vec4 arg_1 = f16vec4(4.0hf);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -31,6 +31,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 smoothstep_c43ebd() {
   f16vec4 arg_0 = f16vec4(2.0hf);
   f16vec4 arg_1 = f16vec4(4.0hf);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.wgsl
index ca87ec4..caf0b1b 100644
--- a/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/smoothstep/c43ebd.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn smoothstep_c43ebd() -> vec4<f16> {
   var arg_0 = vec4<f16>(2.0h);
   var arg_1 = vec4<f16>(4.0h);
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = smoothstep_c43ebd();
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl
index e415f90..8d56c93 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn sqrt(f32) -> f32
 fn sqrt_20c74e() -> f32{
   var arg_0 = 1.f;
   var res: f32 = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_20c74e();
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.dxc.hlsl
index ab08f36..0b0181d 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sqrt_20c74e() {
   float arg_0 = 1.0f;
   float res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sqrt_20c74e()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.fxc.hlsl
index ab08f36..0b0181d 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float sqrt_20c74e() {
   float arg_0 = 1.0f;
   float res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(sqrt_20c74e()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.glsl
index bde57f4..d1982d8 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sqrt_20c74e() {
   float arg_0 = 1.0f;
   float res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float sqrt_20c74e() {
   float arg_0 = 1.0f;
   float res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.wgsl
index 5ffe5e6..24a8880 100644
--- a/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/20c74e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn sqrt_20c74e() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_20c74e();
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl
index 12b3d44..99aa039 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn sqrt(vec<4, f16>) -> vec<4, f16>
 fn sqrt_803d1c() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_803d1c();
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.dxc.hlsl
index 0aa40c7..701f2ac 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> sqrt_803d1c() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, sqrt_803d1c());
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.glsl
index 2b7ed4c..cf2c6ac 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sqrt_803d1c() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 sqrt_803d1c() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.wgsl
index 0a3fcd6..56b40ff 100644
--- a/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/803d1c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn sqrt_803d1c() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_803d1c();
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl
index 91a835d..f2548fa 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn sqrt(vec<3, f16>) -> vec<3, f16>
 fn sqrt_895a0c() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_895a0c();
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.dxc.hlsl
index 638e994..52ad077 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> sqrt_895a0c() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, sqrt_895a0c());
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.glsl
index 171e2ac..5125262 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sqrt_895a0c() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 sqrt_895a0c() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.wgsl
index 2aa053a..c7ae34d 100644
--- a/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/895a0c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn sqrt_895a0c() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_895a0c();
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl
index 77c1644..104c030 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn sqrt(vec<2, f32>) -> vec<2, f32>
 fn sqrt_8c7024() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_8c7024();
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.dxc.hlsl
index af2b47e..ca9379c 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sqrt_8c7024() {
   float2 arg_0 = (1.0f).xx;
   float2 res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.fxc.hlsl
index af2b47e..ca9379c 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 sqrt_8c7024() {
   float2 arg_0 = (1.0f).xx;
   float2 res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(sqrt_8c7024()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.glsl
index 84a41c6..53cfe2c 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sqrt_8c7024() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 sqrt_8c7024() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.wgsl
index 959eff0..55c78ea 100644
--- a/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/8c7024.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn sqrt_8c7024() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_8c7024();
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl
index 12e3c2e..9615b43 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn sqrt(vec<4, f32>) -> vec<4, f32>
 fn sqrt_aa0d7a() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_aa0d7a();
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.dxc.hlsl
index 05c7620..e363dad 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sqrt_aa0d7a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.fxc.hlsl
index 05c7620..e363dad 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 sqrt_aa0d7a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(sqrt_aa0d7a()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.glsl
index 6408d7c..c72870a 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sqrt_aa0d7a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 sqrt_aa0d7a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.wgsl
index 1c60d4b..30444ac 100644
--- a/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/aa0d7a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn sqrt_aa0d7a() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_aa0d7a();
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl
index 31760d2..0593639 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn sqrt(vec<2, f16>) -> vec<2, f16>
 fn sqrt_d9ab4d() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_d9ab4d();
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.dxc.hlsl
index 60abe7f..b698035 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> sqrt_d9ab4d() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, sqrt_d9ab4d());
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.glsl
index f688135..d747ff3 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sqrt_d9ab4d() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 sqrt_d9ab4d() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.wgsl
index d3e571d..773f7a0 100644
--- a/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/d9ab4d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn sqrt_d9ab4d() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_d9ab4d();
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl
index ba4505a..8b868d7 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn sqrt(f16) -> f16
 fn sqrt_ec33e9() -> f16{
   var arg_0 = 1.h;
   var res: f16 = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_ec33e9();
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.dxc.hlsl
index 4705974..139c601 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t sqrt_ec33e9() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, sqrt_ec33e9());
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.glsl
index 92a839e..e8a501c 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sqrt_ec33e9() {
   float16_t arg_0 = 1.0hf;
   float16_t res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t sqrt_ec33e9() {
   float16_t arg_0 = 1.0hf;
   float16_t res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.wgsl
index 6d8cb8b..a06af81 100644
--- a/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/ec33e9.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn sqrt_ec33e9() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_ec33e9();
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl
index 6073c77..7b80862 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn sqrt(vec<3, f32>) -> vec<3, f32>
 fn sqrt_f8c59a() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = sqrt(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_f8c59a();
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.dxc.hlsl
index 546fec1..4c867db 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sqrt_f8c59a() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.fxc.hlsl
index 546fec1..4c867db 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 sqrt_f8c59a() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = sqrt(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(sqrt_f8c59a()));
   return;
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.glsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.glsl
index 16ad574..6cc20de 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sqrt_f8c59a() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 sqrt_f8c59a() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = sqrt(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.wgsl
index 1edb9f0..030b8bd 100644
--- a/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/sqrt/f8c59a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn sqrt_f8c59a() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = sqrt(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = sqrt_f8c59a();
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl b/test/tint/builtins/gen/var/step/07cb06.wgsl
index bfaeb8e..405e9f8 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn step(vec<2, f16>, vec<2, f16>) -> vec<2, f16>
 fn step_07cb06() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec2<f16> = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_07cb06();
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.dxc.hlsl
index 2a6e3ca..5d72e6d 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> step_07cb06() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> arg_1 = (float16_t(1.0h)).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, step_07cb06());
   return;
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.glsl
index a12a32d..3ace7dd 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 step_07cb06() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 step_07cb06() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 arg_1 = f16vec2(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.wgsl
index f408403..42d86e4 100644
--- a/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/07cb06.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn step_07cb06() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var arg_1 = vec2<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_07cb06();
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl b/test/tint/builtins/gen/var/step/0b073b.wgsl
index 8d6aa62..0682c3b 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn step(f32, f32) -> f32
 fn step_0b073b() -> f32{
   var arg_0 = 1.f;
@@ -42,8 +45,6 @@
   var res: f32 = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_0b073b();
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.dxc.hlsl
index 9c552aa..817d8b5 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float step_0b073b() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(step_0b073b()));
   return;
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.fxc.hlsl
index 9c552aa..817d8b5 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float step_0b073b() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(step_0b073b()));
   return;
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.glsl
index f74c114..57e4167 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float step_0b073b() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float step_0b073b() {
   float arg_0 = 1.0f;
   float arg_1 = 1.0f;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.wgsl
index b54866f..98ec912 100644
--- a/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/0b073b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn step_0b073b() -> f32 {
   var arg_0 = 1.0f;
   var arg_1 = 1.0f;
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_0b073b();
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl b/test/tint/builtins/gen/var/step/19accd.wgsl
index fcf4059..4edb773 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn step(vec<2, f32>, vec<2, f32>) -> vec<2, f32>
 fn step_19accd() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec2<f32> = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_19accd();
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.dxc.hlsl
index c08f2b8..952a62f 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 step_19accd() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(step_19accd()));
   return;
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.fxc.hlsl
index c08f2b8..952a62f 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 step_19accd() {
   float2 arg_0 = (1.0f).xx;
   float2 arg_1 = (1.0f).xx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(step_19accd()));
   return;
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.glsl
index 3ae6976..8f86708 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 step_19accd() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 step_19accd() {
   vec2 arg_0 = vec2(1.0f);
   vec2 arg_1 = vec2(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.wgsl
index fe5b33e..f35550c 100644
--- a/test/tint/builtins/gen/var/step/19accd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/19accd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn step_19accd() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var arg_1 = vec2<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_19accd();
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl b/test/tint/builtins/gen/var/step/334303.wgsl
index 5ef5444..b9e45d9 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn step(vec<3, f32>, vec<3, f32>) -> vec<3, f32>
 fn step_334303() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec3<f32> = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_334303();
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.dxc.hlsl
index f178497..214c396 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 step_334303() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(step_334303()));
   return;
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.fxc.hlsl
index f178497..214c396 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 step_334303() {
   float3 arg_0 = (1.0f).xxx;
   float3 arg_1 = (1.0f).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(step_334303()));
   return;
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.glsl
index 8a22f67..07c68d8 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 step_334303() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 step_334303() {
   vec3 arg_0 = vec3(1.0f);
   vec3 arg_1 = vec3(1.0f);
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/334303.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/334303.wgsl.expected.wgsl
index 8e0a6b3..cc81f16 100644
--- a/test/tint/builtins/gen/var/step/334303.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/334303.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn step_334303() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var arg_1 = vec3<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_334303();
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl b/test/tint/builtins/gen/var/step/630d07.wgsl
index 30a63c3..19af8b8 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn step(f16, f16) -> f16
 fn step_630d07() -> f16{
   var arg_0 = 1.h;
@@ -47,8 +50,6 @@
   var res: f16 = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_630d07();
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.dxc.hlsl
index c24e041..934a6e1 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t step_630d07() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t arg_1 = float16_t(1.0h);
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, step_630d07());
   return;
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.glsl
index b4a78a0..0eb5de8 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t step_630d07() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t step_630d07() {
   float16_t arg_0 = 1.0hf;
   float16_t arg_1 = 1.0hf;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.wgsl
index 65cf1aa..a6c6ec2 100644
--- a/test/tint/builtins/gen/var/step/630d07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/630d07.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn step_630d07() -> f16 {
   var arg_0 = 1.0h;
   var arg_1 = 1.0h;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_630d07();
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl b/test/tint/builtins/gen/var/step/baa320.wgsl
index e106c22..2e20929 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn step(vec<4, f16>, vec<4, f16>) -> vec<4, f16>
 fn step_baa320() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec4<f16> = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_baa320();
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.dxc.hlsl
index d539a2c..4b5fd25 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> step_baa320() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> arg_1 = (float16_t(1.0h)).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, step_baa320());
   return;
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.glsl
index d6d5101..de2a192 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 step_baa320() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 step_baa320() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 arg_1 = f16vec4(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.wgsl
index 12d3a57..0c43624 100644
--- a/test/tint/builtins/gen/var/step/baa320.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/baa320.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn step_baa320() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var arg_1 = vec4<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_baa320();
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl
index 33d6a06..9dedbc3 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl
@@ -40,6 +40,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn step(vec<3, f16>, vec<3, f16>) -> vec<3, f16>
 fn step_cc6b61() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -47,8 +50,6 @@
   var res: vec3<f16> = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_cc6b61();
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.dxc.hlsl
index 5e8d786..192cabc 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> step_cc6b61() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> arg_1 = (float16_t(1.0h)).xxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, step_cc6b61());
   return;
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.glsl
index 1e5945d..a72ea9d 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.glsl
@@ -3,6 +3,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 step_cc6b61() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -30,6 +30,10 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 step_cc6b61() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 arg_1 = f16vec3(1.0hf);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.wgsl
index 7dbff51..b8e2e4b 100644
--- a/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/cc6b61.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn step_cc6b61() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var arg_1 = vec3<f16>(1.0h);
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_cc6b61();
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl b/test/tint/builtins/gen/var/step/e2b337.wgsl
index 9782197..ed7d3fc 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl
@@ -35,6 +35,9 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn step(vec<4, f32>, vec<4, f32>) -> vec<4, f32>
 fn step_e2b337() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -42,8 +45,6 @@
   var res: vec4<f32> = step(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_e2b337();
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.dxc.hlsl
index c863204..c406dbd 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.dxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 step_e2b337() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(step_e2b337()));
   return;
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.fxc.hlsl
index c863204..c406dbd 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.fxc.hlsl
@@ -1,3 +1,5 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 step_e2b337() {
   float4 arg_0 = (1.0f).xxxx;
   float4 arg_1 = (1.0f).xxxx;
@@ -5,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(step_e2b337()));
   return;
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.glsl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.glsl
index 5e1d106..072ee2c 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 step_e2b337() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 step_e2b337() {
   vec4 arg_0 = vec4(1.0f);
   vec4 arg_1 = vec4(1.0f);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.wgsl b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.wgsl
index 4088466..efa25fd 100644
--- a/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/step/e2b337.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn step_e2b337() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var arg_1 = vec4<f32>(1.0f);
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = step_e2b337();
diff --git a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl
index 70256f9..ea092be 100644
--- a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl
@@ -37,13 +37,14 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn subgroupBallot() -> vec4<u32>
 fn subgroupBallot_7e6d0e() -> vec4<u32>{
   var res: vec4<u32> = subgroupBallot();
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBallot_7e6d0e();
diff --git a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl
index 5ee6b14..1eab1721 100644
--- a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.dxc.hlsl
@@ -1,10 +1,10 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 subgroupBallot_7e6d0e() {
   uint4 res = WaveActiveBallot(true);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBallot_7e6d0e()));
diff --git a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.wgsl
index 4ed9f76..7fa2b9b 100644
--- a/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBallot/7e6d0e.wgsl.expected.wgsl
@@ -1,12 +1,12 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn subgroupBallot_7e6d0e() -> vec4<u32> {
   var res : vec4<u32> = subgroupBallot();
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBallot_7e6d0e();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl
index 73ab992..573005c 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl
@@ -42,6 +42,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn subgroupBroadcast(value: f16, @const sourceLaneIndex: u32) -> f16
 fn subgroupBroadcast_07e2d8() -> f16{
   var arg_0 = 1.h;
@@ -49,8 +52,6 @@
   var res: f16 = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_07e2d8();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl
index feb6c1c..d38544a 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t subgroupBroadcast_07e2d8() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<float16_t>(0u, subgroupBroadcast_07e2d8());
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.wgsl
index 904ada2..e05a085 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/07e2d8.wgsl.expected.wgsl
@@ -1,6 +1,8 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn subgroupBroadcast_07e2d8() -> f16 {
   var arg_0 = 1.0h;
   const arg_1 = 1u;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_07e2d8();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl
index bfedfc6..47a5bb3 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn subgroupBroadcast(value: f32, @const sourceLaneIndex: u32) -> f32
 fn subgroupBroadcast_08beca() -> f32{
   var arg_0 = 1.f;
@@ -44,8 +47,6 @@
   var res: f32 = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_08beca();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
index b5f13fc..a85caf4 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float subgroupBroadcast_08beca() {
   float arg_0 = 1.0f;
   float res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store(0u, asuint(subgroupBroadcast_08beca()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.wgsl
index 4f32387..1cea6d2 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn subgroupBroadcast_08beca() -> f32 {
   var arg_0 = 1.0f;
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_08beca();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl
index 7af3640..98c2abb 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl
@@ -42,6 +42,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn subgroupBroadcast(value: vec<4, f16>, @const sourceLaneIndex: u32) -> vec<4, f16>
 fn subgroupBroadcast_0f44e2() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
@@ -49,8 +52,6 @@
   var res: vec4<f16> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_0f44e2();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl
index e0f8603..ba906c8 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> subgroupBroadcast_0f44e2() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, subgroupBroadcast_0f44e2());
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.wgsl
index 4a75d79..30c143a 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/0f44e2.wgsl.expected.wgsl
@@ -1,6 +1,8 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn subgroupBroadcast_0f44e2() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   const arg_1 = 1u;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_0f44e2();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl
index 9c4f259..d589b38 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl
@@ -42,6 +42,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn subgroupBroadcast(value: vec<2, f16>, @const sourceLaneIndex: u32) -> vec<2, f16>
 fn subgroupBroadcast_13f36c() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
@@ -49,8 +52,6 @@
   var res: vec2<f16> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_13f36c();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl
index 369288c..b2152dc 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> subgroupBroadcast_13f36c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, subgroupBroadcast_13f36c());
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.wgsl
index 8640ac7..7c5d3d2 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/13f36c.wgsl.expected.wgsl
@@ -1,6 +1,8 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn subgroupBroadcast_13f36c() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   const arg_1 = 1u;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_13f36c();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl
index 1f4ba10..0a8f9b1 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
 // fn subgroupBroadcast(value: i32, @const sourceLaneIndex: u32) -> i32
 fn subgroupBroadcast_1d79c7() -> i32{
   var arg_0 = 1i;
@@ -44,8 +47,6 @@
   var res: i32 = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_1d79c7();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
index 2d07700..146f197 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int subgroupBroadcast_1d79c7() {
   int arg_0 = 1;
   int res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store(0u, asuint(subgroupBroadcast_1d79c7()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
index d0c46ba..b4461f2 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn subgroupBroadcast_1d79c7() -> i32 {
   var arg_0 = 1i;
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_1d79c7();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl
index b8cffad..68fff3c 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn subgroupBroadcast(value: vec<4, u32>, @const sourceLaneIndex: u32) -> vec<4, u32>
 fn subgroupBroadcast_279027() -> vec4<u32>{
   var arg_0 = vec4<u32>(1u);
@@ -44,8 +47,6 @@
   var res: vec4<u32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_279027();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl
index 4be1cc0..99c32e2 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 subgroupBroadcast_279027() {
   uint4 arg_0 = (1u).xxxx;
   uint4 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBroadcast_279027()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.wgsl
index 217757e..16edec3 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/279027.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn subgroupBroadcast_279027() -> vec4<u32> {
   var arg_0 = vec4<u32>(1u);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_279027();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl
index 925f1ac..0f8727d 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
+
 // fn subgroupBroadcast(value: vec<3, u32>, @const sourceLaneIndex: u32) -> vec<3, u32>
 fn subgroupBroadcast_34fa3d() -> vec3<u32>{
   var arg_0 = vec3<u32>(1u);
@@ -44,8 +47,6 @@
   var res: vec3<u32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_34fa3d();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl
index 93a62d8..33f42db 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint3 subgroupBroadcast_34fa3d() {
   uint3 arg_0 = (1u).xxx;
   uint3 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store3(0u, asuint(subgroupBroadcast_34fa3d()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.wgsl
index ca2497c..995d687 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/34fa3d.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 fn subgroupBroadcast_34fa3d() -> vec3<u32> {
   var arg_0 = vec3<u32>(1u);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_34fa3d();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl
index d5d8310..5ff9063 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
+
 // fn subgroupBroadcast(value: vec<2, i32>, @const sourceLaneIndex: u32) -> vec<2, i32>
 fn subgroupBroadcast_3e6879() -> vec2<i32>{
   var arg_0 = vec2<i32>(1i);
@@ -44,8 +47,6 @@
   var res: vec2<i32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_3e6879();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl
index a404f17..7b923cb 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int2 subgroupBroadcast_3e6879() {
   int2 arg_0 = (1).xx;
   int2 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store2(0u, asuint(subgroupBroadcast_3e6879()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.wgsl
index 0c0f2b7..1eb315a 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/3e6879.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
+
 fn subgroupBroadcast_3e6879() -> vec2<i32> {
   var arg_0 = vec2<i32>(1i);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_3e6879();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl
index 764c586..514462c 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl
@@ -42,6 +42,9 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn subgroupBroadcast(value: vec<3, f16>, @const sourceLaneIndex: u32) -> vec<3, f16>
 fn subgroupBroadcast_41e5d7() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
@@ -49,8 +52,6 @@
   var res: vec3<f16> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_41e5d7();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl
index d8d527f..48d38d0 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> subgroupBroadcast_41e5d7() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, subgroupBroadcast_41e5d7());
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.wgsl
index b08d546..23d1db3 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/41e5d7.wgsl.expected.wgsl
@@ -1,6 +1,8 @@
 enable chromium_experimental_subgroups;
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn subgroupBroadcast_41e5d7() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   const arg_1 = 1u;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_41e5d7();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl
index 63dcda5..1b279ab 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
+
 // fn subgroupBroadcast(value: vec<2, u32>, @const sourceLaneIndex: u32) -> vec<2, u32>
 fn subgroupBroadcast_4a4334() -> vec2<u32>{
   var arg_0 = vec2<u32>(1u);
@@ -44,8 +47,6 @@
   var res: vec2<u32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_4a4334();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl
index a8ff575..b236071 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint2 subgroupBroadcast_4a4334() {
   uint2 arg_0 = (1u).xx;
   uint2 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store2(0u, asuint(subgroupBroadcast_4a4334()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.wgsl
index b7349ad..a3a9ab8 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/4a4334.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 fn subgroupBroadcast_4a4334() -> vec2<u32> {
   var arg_0 = vec2<u32>(1u);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_4a4334();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl
index bbabc60..31a5fc8 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn subgroupBroadcast(value: vec<2, f32>, @const sourceLaneIndex: u32) -> vec<2, f32>
 fn subgroupBroadcast_5196c8() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
@@ -44,8 +47,6 @@
   var res: vec2<f32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_5196c8();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl
index c21356c..eefe88e 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 subgroupBroadcast_5196c8() {
   float2 arg_0 = (1.0f).xx;
   float2 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store2(0u, asuint(subgroupBroadcast_5196c8()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.wgsl
index 4766fe3..4918901 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/5196c8.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn subgroupBroadcast_5196c8() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_5196c8();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl
index 9f1a86f..86d4abd 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn subgroupBroadcast(value: vec<3, f32>, @const sourceLaneIndex: u32) -> vec<3, f32>
 fn subgroupBroadcast_912ff5() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
@@ -44,8 +47,6 @@
   var res: vec3<f32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_912ff5();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl
index 3bb8443..96aa3a8 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 subgroupBroadcast_912ff5() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store3(0u, asuint(subgroupBroadcast_912ff5()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.wgsl
index 093e80b..c725a33 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/912ff5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn subgroupBroadcast_912ff5() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_912ff5();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl
index 8ed3da3..127e970 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn subgroupBroadcast(value: vec<4, f32>, @const sourceLaneIndex: u32) -> vec<4, f32>
 fn subgroupBroadcast_b7e93b() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
@@ -44,8 +47,6 @@
   var res: vec4<f32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_b7e93b();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl
index 9f13503..73faaee 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 subgroupBroadcast_b7e93b() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBroadcast_b7e93b()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.wgsl
index d2c1607..c5be68c 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/b7e93b.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn subgroupBroadcast_b7e93b() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_b7e93b();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl
index 5890f2a..7d3e499 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+
 // fn subgroupBroadcast(value: u32, @const sourceLaneIndex: u32) -> u32
 fn subgroupBroadcast_c36fe1() -> u32{
   var arg_0 = 1u;
@@ -44,8 +47,6 @@
   var res: u32 = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_c36fe1();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
index ec6ce2f..1143d42 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint subgroupBroadcast_c36fe1() {
   uint arg_0 = 1u;
   uint res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store(0u, asuint(subgroupBroadcast_c36fe1()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
index 4ed72ec..63f0900 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 fn subgroupBroadcast_c36fe1() -> u32 {
   var arg_0 = 1u;
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_c36fe1();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl
index cb9b89e..f4aa87b 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
+
 // fn subgroupBroadcast(value: vec<3, i32>, @const sourceLaneIndex: u32) -> vec<3, i32>
 fn subgroupBroadcast_e275c8() -> vec3<i32>{
   var arg_0 = vec3<i32>(1i);
@@ -44,8 +47,6 @@
   var res: vec3<i32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_e275c8();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl
index 9a04392..2c19e24 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int3 subgroupBroadcast_e275c8() {
   int3 arg_0 = (1).xxx;
   int3 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store3(0u, asuint(subgroupBroadcast_e275c8()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.wgsl
index de6d37b..2df2b15 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/e275c8.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
+
 fn subgroupBroadcast_e275c8() -> vec3<i32> {
   var arg_0 = vec3<i32>(1i);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_e275c8();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl
index a7c95a8..f327c55 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl
@@ -37,6 +37,9 @@
 
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn subgroupBroadcast(value: vec<4, i32>, @const sourceLaneIndex: u32) -> vec<4, i32>
 fn subgroupBroadcast_f637f9() -> vec4<i32>{
   var arg_0 = vec4<i32>(1i);
@@ -44,8 +47,6 @@
   var res: vec4<i32> = subgroupBroadcast(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_f637f9();
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl
index b8a9f14..a4acc89 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 subgroupBroadcast_f637f9() {
   int4 arg_0 = (1).xxxx;
   int4 res = WaveReadLaneAt(arg_0, 1u);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 [numthreads(1, 1, 1)]
 void compute_main() {
   prevent_dce.Store4(0u, asuint(subgroupBroadcast_f637f9()));
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.wgsl
index 3ed2d03..1d8d4f4 100644
--- a/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/f637f9.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_experimental_subgroups;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn subgroupBroadcast_f637f9() -> vec4<i32> {
   var arg_0 = vec4<i32>(1i);
   const arg_1 = 1u;
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = subgroupBroadcast_f637f9();
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl
index b5e4b4b..b0ba34b 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn tan(vec<4, f32>) -> vec<4, f32>
 fn tan_244e2a() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_244e2a();
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.dxc.hlsl
index 36fd385..d3e1cf7 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tan_244e2a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tan_244e2a()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.fxc.hlsl
index 36fd385..d3e1cf7 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tan_244e2a() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tan_244e2a()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.glsl
index 2a04534..e19959f 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tan_244e2a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tan_244e2a() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.wgsl
index c577c77..6d1291b3 100644
--- a/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/244e2a.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn tan_244e2a() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_244e2a();
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl
index 5ce6c98..a7d3724 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn tan(f32) -> f32
 fn tan_2f030e() -> f32{
   var arg_0 = 1.f;
   var res: f32 = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_2f030e();
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.dxc.hlsl
index db223b3..74411c3 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tan_2f030e() {
   float arg_0 = 1.0f;
   float res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tan_2f030e()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.fxc.hlsl
index db223b3..74411c3 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tan_2f030e() {
   float arg_0 = 1.0f;
   float res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tan_2f030e()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.glsl
index ebedfc2..1a2c6ef 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tan_2f030e() {
   float arg_0 = 1.0f;
   float res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tan_2f030e() {
   float arg_0 = 1.0f;
   float res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.wgsl
index dc48558..47005c4 100644
--- a/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/2f030e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn tan_2f030e() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_2f030e();
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl b/test/tint/builtins/gen/var/tan/539e54.wgsl
index 388a47d..a4d7b1f 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn tan(vec<4, f16>) -> vec<4, f16>
 fn tan_539e54() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_539e54();
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.dxc.hlsl
index 262c42b..6b06afd 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> tan_539e54() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, tan_539e54());
   return;
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.glsl
index ad9cc66..225fe00 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tan_539e54() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tan_539e54() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.wgsl
index d676a77..9b82129 100644
--- a/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/539e54.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn tan_539e54() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_539e54();
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl
index 3736af7..38823e0 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn tan(vec<3, f32>) -> vec<3, f32>
 fn tan_7ea104() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_7ea104();
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.dxc.hlsl
index 6c0acd1..e9f37ad 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tan_7ea104() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tan_7ea104()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.fxc.hlsl
index 6c0acd1..e9f37ad 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tan_7ea104() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tan_7ea104()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.glsl
index 8b83977..c192cbf 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 tan_7ea104() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 tan_7ea104() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.wgsl
index 2cdcc24..3112854 100644
--- a/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/7ea104.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn tan_7ea104() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_7ea104();
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl
index 2920e4a..8c8a44c 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn tan(vec<2, f32>) -> vec<2, f32>
 fn tan_8ce3e9() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_8ce3e9();
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.dxc.hlsl
index 9e88218..b4b4fee 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tan_8ce3e9() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.fxc.hlsl
index 9e88218..b4b4fee 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tan_8ce3e9() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tan_8ce3e9()));
   return;
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.glsl
index 38450fd..9f4adac 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tan_8ce3e9() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tan_8ce3e9() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.wgsl
index 6c3d67e..461c700 100644
--- a/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/8ce3e9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn tan_8ce3e9() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_8ce3e9();
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl
index d644d33..2e0d50e 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn tan(vec<2, f16>) -> vec<2, f16>
 fn tan_9f7c9c() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_9f7c9c();
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.dxc.hlsl
index faf852b..0fad564 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> tan_9f7c9c() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, tan_9f7c9c());
   return;
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.glsl
index 363f0f9..2b057c7 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tan_9f7c9c() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tan_9f7c9c() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.wgsl
index 3ffbd45..2cdbaf6 100644
--- a/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/9f7c9c.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn tan_9f7c9c() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_9f7c9c();
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl
index 967eb05..f633e47 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn tan(f16) -> f16
 fn tan_d4d491() -> f16{
   var arg_0 = 1.h;
   var res: f16 = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_d4d491();
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.dxc.hlsl
index 262a4fc..9e40da2 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t tan_d4d491() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, tan_d4d491());
   return;
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.glsl
index 5a211f8..3336bed 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tan_d4d491() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tan_d4d491() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.wgsl
index d4ba15d..a509871 100644
--- a/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/d4d491.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn tan_d4d491() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_d4d491();
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl b/test/tint/builtins/gen/var/tan/db0456.wgsl
index 7b0e088..bb5cb1c 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn tan(vec<3, f16>) -> vec<3, f16>
 fn tan_db0456() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = tan(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_db0456();
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.dxc.hlsl
index 635a3df..bb93476 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> tan_db0456() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tan(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, tan_db0456());
   return;
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.glsl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.glsl
index 96fc3e1..b2ff2e7 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tan_db0456() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tan_db0456() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tan(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.wgsl
index ad3a8ea..3686a25 100644
--- a/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tan/db0456.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn tan_db0456() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = tan(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tan_db0456();
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl
index 74dc62a..9885388 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn tanh(vec<3, f16>) -> vec<3, f16>
 fn tanh_06a4fe() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.h);
   var res: vec3<f16> = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_06a4fe();
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.dxc.hlsl
index b1679a5..86d8bd6 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> tanh_06a4fe() {
   vector<float16_t, 3> arg_0 = (float16_t(1.0h)).xxx;
   vector<float16_t, 3> res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, tanh_06a4fe());
   return;
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.glsl
index 767a68b..5ee290a 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tanh_06a4fe() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 tanh_06a4fe() {
   f16vec3 arg_0 = f16vec3(1.0hf);
   f16vec3 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.wgsl
index 98e14c4..d2f81dc 100644
--- a/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/06a4fe.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn tanh_06a4fe() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.0h);
   var res : vec3<f16> = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_06a4fe();
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl
index eefdfad..8c403de 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn tanh(vec<4, f32>) -> vec<4, f32>
 fn tanh_5663c5() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.f);
   var res: vec4<f32> = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5663c5();
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.dxc.hlsl
index 6bb09f7..3ace87d 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tanh_5663c5() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tanh_5663c5()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.fxc.hlsl
index 6bb09f7..3ace87d 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 tanh_5663c5() {
   float4 arg_0 = (1.0f).xxxx;
   float4 res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(tanh_5663c5()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.glsl
index ab050f1..0c6deb9 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tanh_5663c5() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 tanh_5663c5() {
   vec4 arg_0 = vec4(1.0f);
   vec4 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.wgsl
index e9d6bcf..495627e 100644
--- a/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/5663c5.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn tanh_5663c5() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.0f);
   var res : vec4<f32> = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5663c5();
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl
index 22028e6..2e0d3e0 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn tanh(vec<2, f32>) -> vec<2, f32>
 fn tanh_5724b3() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.f);
   var res: vec2<f32> = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5724b3();
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.dxc.hlsl
index eef2cc1..e7a06a6 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tanh_5724b3() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tanh_5724b3()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.fxc.hlsl
index eef2cc1..e7a06a6 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 tanh_5724b3() {
   float2 arg_0 = (1.0f).xx;
   float2 res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(tanh_5724b3()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.glsl
index 4716b6c..41a6894 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tanh_5724b3() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 tanh_5724b3() {
   vec2 arg_0 = vec2(1.0f);
   vec2 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.wgsl
index 5df4424..fdfa730 100644
--- a/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/5724b3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn tanh_5724b3() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.0f);
   var res : vec2<f32> = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5724b3();
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl
index 293d7f5..7233186 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn tanh(f16) -> f16
 fn tanh_5b19af() -> f16{
   var arg_0 = 1.h;
   var res: f16 = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5b19af();
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.dxc.hlsl
index f8f516a..bde0d55 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t tanh_5b19af() {
   float16_t arg_0 = float16_t(1.0h);
   float16_t res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, tanh_5b19af());
   return;
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.glsl
index c326603..444727e 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tanh_5b19af() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t tanh_5b19af() {
   float16_t arg_0 = 1.0hf;
   float16_t res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.wgsl
index 678c8f0..99c321a 100644
--- a/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/5b19af.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn tanh_5b19af() -> f16 {
   var arg_0 = 1.0h;
   var res : f16 = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_5b19af();
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl
index 2a580be..646cb3a 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn tanh(vec<2, f16>) -> vec<2, f16>
 fn tanh_6d105a() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.h);
   var res: vec2<f16> = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_6d105a();
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.dxc.hlsl
index 4b7de1d..bfc01ba 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> tanh_6d105a() {
   vector<float16_t, 2> arg_0 = (float16_t(1.0h)).xx;
   vector<float16_t, 2> res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, tanh_6d105a());
   return;
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.glsl
index fe25567..f32ac18 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tanh_6d105a() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 tanh_6d105a() {
   f16vec2 arg_0 = f16vec2(1.0hf);
   f16vec2 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.wgsl
index b4fd409..867f882 100644
--- a/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/6d105a.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn tanh_6d105a() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.0h);
   var res : vec2<f16> = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_6d105a();
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl
index a240849..4a16586 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn tanh(vec<3, f32>) -> vec<3, f32>
 fn tanh_9f9fb9() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.f);
   var res: vec3<f32> = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_9f9fb9();
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.dxc.hlsl
index 92550f1..79acfd2 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tanh_9f9fb9() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.fxc.hlsl
index 92550f1..79acfd2 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 tanh_9f9fb9() {
   float3 arg_0 = (1.0f).xxx;
   float3 res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(tanh_9f9fb9()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.glsl
index 828b3ef..74303e1 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 tanh_9f9fb9() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 tanh_9f9fb9() {
   vec3 arg_0 = vec3(1.0f);
   vec3 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.wgsl
index 92e20bb..55eadcc 100644
--- a/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/9f9fb9.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn tanh_9f9fb9() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.0f);
   var res : vec3<f32> = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_9f9fb9();
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl
index 15a57a2..4d9b3b0 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn tanh(f32) -> f32
 fn tanh_c15fdb() -> f32{
   var arg_0 = 1.f;
   var res: f32 = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_c15fdb();
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.dxc.hlsl
index ef6baa6..0e23217 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tanh_c15fdb() {
   float arg_0 = 1.0f;
   float res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tanh_c15fdb()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.fxc.hlsl
index ef6baa6..0e23217 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float tanh_c15fdb() {
   float arg_0 = 1.0f;
   float res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(tanh_c15fdb()));
   return;
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.glsl
index 11c0d0d..1d0e99e 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tanh_c15fdb() {
   float arg_0 = 1.0f;
   float res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float tanh_c15fdb() {
   float arg_0 = 1.0f;
   float res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.wgsl
index f1cb3ab..c7d54f5 100644
--- a/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/c15fdb.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn tanh_c15fdb() -> f32 {
   var arg_0 = 1.0f;
   var res : f32 = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_c15fdb();
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl
index 11c845a..d41c225 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn tanh(vec<4, f16>) -> vec<4, f16>
 fn tanh_e8efb3() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.h);
   var res: vec4<f16> = tanh(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_e8efb3();
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.dxc.hlsl
index 0c10c51..f820d74 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> tanh_e8efb3() {
   vector<float16_t, 4> arg_0 = (float16_t(1.0h)).xxxx;
   vector<float16_t, 4> res = tanh(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, tanh_e8efb3());
   return;
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.glsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.glsl
index bfd294f..e1baa34 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tanh_e8efb3() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 tanh_e8efb3() {
   f16vec4 arg_0 = f16vec4(1.0hf);
   f16vec4 res = tanh(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.wgsl
index 0072f8d..1eedfcf 100644
--- a/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/tanh/e8efb3.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn tanh_e8efb3() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.0h);
   var res : vec4<f16> = tanh(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = tanh_e8efb3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl
index e22ab39..f443996 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r8unorm, read>) -> vec3<u32>
@@ -43,8 +46,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00229f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.dxc.hlsl
index 492cc11..644a362 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_00229f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_00229f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.fxc.hlsl
index 492cc11..644a362 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_00229f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_00229f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.spvasm
index d865f9f..84bd672 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_00229f "textureDimensions_00229f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_00229f = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.wgsl
index da76e54..37631c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00229f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read>;
 
 fn textureDimensions_00229f() -> vec3<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00229f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl
index d96b636..f56c42c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureDimensions(texture: texture_multisampled_2d<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00348c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl
index 15206a2..90896c3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_00348c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_00348c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl
index 15206a2..90896c3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_00348c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_00348c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.glsl
index d3f95f7..6d61ce1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 uvec2 textureDimensions_00348c() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 uvec2 textureDimensions_00348c() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.spvasm
index 515bfbe..2c9c732 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_00348c "textureDimensions_00348c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_00348c = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.wgsl
index 6375abb..efef73e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/00348c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureDimensions_00348c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_00348c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl
index 4e4e26d..a8d066f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01e21e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.dxc.hlsl
index fdae3af..8d5499d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01e21e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01e21e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.fxc.hlsl
index fdae3af..8d5499d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01e21e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01e21e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.spvasm
index 0cd6f97..0405968 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_01e21e "textureDimensions_01e21e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_01e21e = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.wgsl
index edd5ec9..ec8c0c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01e21e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
 
 fn textureDimensions_01e21e() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01e21e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl
index 10bd349..e201cbe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01edb1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.dxc.hlsl
index 4881e2c..475a14b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01edb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01edb1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.fxc.hlsl
index 4881e2c..475a14b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_01edb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_01edb1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.glsl
index 2662bf2..67b2948 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_01edb1() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_01edb1() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.spvasm
index d63ac24..895d69d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_01edb1 "textureDimensions_01edb1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_01edb1 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.wgsl
index 1e4c90c..28754f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/01edb1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
 
 fn textureDimensions_01edb1() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_01edb1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl
index 62ad640..1955d39 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureDimensions(texture: texture_1d<i32>, level: u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_022903();
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl
index eddcc38..525bbad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_022903() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_022903()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl
index eddcc38..525bbad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_022903() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_022903()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.glsl
index 7bc7e10..eca2936 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_022903() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_022903() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.spvasm
index b436979..de4b9e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_022903 "textureDimensions_022903"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %9
         %res = OpVariable %_ptr_Function_uint Function %9
                OpStore %arg_1 %uint_1
-         %27 = OpLoad %15 %arg_0
+         %27 = OpLoad %18 %arg_0
          %28 = OpLoad %uint %arg_1
          %26 = OpImageQuerySizeLod %uint %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.wgsl
index 33c47bf..9319b0a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/022903.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureDimensions_022903() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_022903();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl
index 38b928d..3de4645 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0276ec();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.dxc.hlsl
index c0c408a..902343d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0276ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0276ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.fxc.hlsl
index c0c408a..902343d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0276ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0276ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.glsl
index a98be2c..287bdd4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_0276ec() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_0276ec() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.spvasm
index 5edc249..42f6e77 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0276ec "textureDimensions_0276ec"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_0276ec = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.wgsl
index 54a716f..55b1386 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0276ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
 
 fn textureDimensions_0276ec() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0276ec();
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl
index b216927..d9d59b4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_029589();
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.dxc.hlsl
index 56af906..9e6c382 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_029589() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_029589()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.fxc.hlsl
index 56af906..9e6c382 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_029589() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_029589()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.spvasm
index abdc244..41d162c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_029589 "textureDimensions_029589"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_029589 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.wgsl
index 8eb21b8..599c1f0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/029589.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureDimensions_029589() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_029589();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl
index 0ac27d6..efb1d0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0329b0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.dxc.hlsl
index f18e490..e0e8cc2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_0329b0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0329b0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.fxc.hlsl
index f18e490..e0e8cc2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_0329b0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0329b0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl
index 62f1a63..73623c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_0329b0() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.spvasm
index 354158c..770ecd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0329b0 "textureDimensions_0329b0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_0329b0 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.wgsl
index c0df005..2440084 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0329b0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read>;
 
 fn textureDimensions_0329b0() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0329b0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl
index 72f716d..37bc6a8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033195();
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.dxc.hlsl
index 6112cb2..71222fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_033195() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033195()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.fxc.hlsl
index 6112cb2..71222fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_033195() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033195()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.glsl
index 2169da3..5360a22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_033195() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_033195() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.spvasm
index cc2dd95..0b6e256 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_033195 "textureDimensions_033195"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_033195 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.wgsl
index 4a5a263..9b676a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033195.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
 
 fn textureDimensions_033195() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033195();
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl
index b2a0efd..dfd3826 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033ea7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.dxc.hlsl
index 41bc76b..e9a24ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_033ea7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033ea7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.fxc.hlsl
index 41bc76b..e9a24ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_033ea7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_033ea7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl
index 281f13fc..2600e68 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_033ea7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.spvasm
index 8ad547c..ed324aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_033ea7 "textureDimensions_033ea7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_033ea7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.wgsl
index 6f9b649..98ef90d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/033ea7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read>;
 
 fn textureDimensions_033ea7() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_033ea7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl
index 830c590..de45e3e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_038847();
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.dxc.hlsl
index bcd9624..9f064f3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_038847() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_038847()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.fxc.hlsl
index bcd9624..9f064f3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_038847() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_038847()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.glsl
index df78138..bad818c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_038847() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_038847() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.spvasm
index 5cfb77b..71ba190 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_038847 "textureDimensions_038847"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_038847 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.wgsl
index f26a5dc..4adda73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/038847.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
 
 fn textureDimensions_038847() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_038847();
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl
index 464f22a..f1d3ef1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8snorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_03f81e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.dxc.hlsl
index 57eca16..9dbcf74 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_03f81e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_03f81e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.fxc.hlsl
index 57eca16..9dbcf74 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_03f81e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_03f81e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.glsl
index a0b9769..ba0da93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_03f81e() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_03f81e() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.spvasm
index 4d494e2..d873945 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_03f81e "textureDimensions_03f81e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_03f81e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.wgsl
index cc0a946..a5f1a80 100644
--- a/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/03f81e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
 
 fn textureDimensions_03f81e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_03f81e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl
index 2432731..8a13063 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_07f1ba();
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl
index b6aa069..2705bf8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_07f1ba() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_07f1ba()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl
index b6aa069..2705bf8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_07f1ba() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_07f1ba()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl
index aa719e8..2084b42 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_07f1ba() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.spvasm
index 2d41a9a..80ab8b8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_07f1ba "textureDimensions_07f1ba"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_07f1ba = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.wgsl
index 5a6396f..c74d9e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/07f1ba.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read>;
 
 fn textureDimensions_07f1ba() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_07f1ba();
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl
index f71c2d7..5182428 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_088918();
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.dxc.hlsl
index 652b912..f00ca24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_088918() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_088918()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.fxc.hlsl
index 652b912..f00ca24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_088918() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_088918()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl
index 3668eb6..10fc274 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_088918() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.spvasm
index 81ccf40..09326f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_088918 "textureDimensions_088918"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_088918 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.wgsl
index d998ab3..23acf71 100644
--- a/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/088918.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read>;
 
 fn textureDimensions_088918() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_088918();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl
index 95d3f41..b53ef7a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureDimensions(texture: texture_3d<f32>, level: u32) -> vec3<u32>
@@ -42,8 +45,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0890c6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
index 28a1e209..ee16e77 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_0890c6() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0890c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
index 28a1e209..ee16e77 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_0890c6() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0890c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.glsl
index 4870995..838a2d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_0890c6() {
   uint arg_1 = 1u;
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_0890c6() {
   uint arg_1 = 1u;
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.spvasm
index f948546..adea5c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0890c6 "textureDimensions_0890c6"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v3uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v3uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.wgsl
index a6c9939..98c972d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0890c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureDimensions_0890c6() -> vec3<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0890c6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl
index 2066fe0..d46661b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_08e371();
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.dxc.hlsl
index 703f0d6..8fcddc9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_08e371() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_08e371()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.fxc.hlsl
index 703f0d6..8fcddc9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_08e371() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_08e371()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.spvasm
index 52ff49f..0b9e60e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_08e371 "textureDimensions_08e371"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_08e371 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.wgsl
index 82497f4..59e363c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/08e371.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read>;
 
 fn textureDimensions_08e371() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_08e371();
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl
index 78e5185..d678d82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_09140b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl
index 6fdea37..653774f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_09140b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_09140b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl
index 6fdea37..653774f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_09140b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_09140b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl
index 8e15e69..b6b76b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_09140b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.spvasm
index 79b4996..644e703 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_09140b "textureDimensions_09140b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_09140b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.wgsl
index 42f4919..341f411 100644
--- a/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/09140b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, write>;
 
 fn textureDimensions_09140b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_09140b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl
index 0b2ded0..d787d88 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0973c9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.dxc.hlsl
index 83d668e..6db447b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0973c9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0973c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.fxc.hlsl
index 83d668e..6db447b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0973c9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0973c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.glsl
index 8f45b27..f84f944 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_0973c9() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_0973c9() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.spvasm
index a363b39..bb964a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0973c9 "textureDimensions_0973c9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_0973c9 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.wgsl
index 4c30e2a..05f423d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0973c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
 
 fn textureDimensions_0973c9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0973c9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl
index e032f58..4135205 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0baa0d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
index a8b3209..7734ca3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0baa0d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0baa0d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
index a8b3209..7734ca3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_0baa0d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0baa0d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl
index 089b7ff..f6d78e0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_0baa0d() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.spvasm
index 4598beb..235aabf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0baa0d "textureDimensions_0baa0d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_0baa0d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.wgsl
index fd39459..63ac00c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0baa0d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, write>;
 
 fn textureDimensions_0baa0d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0baa0d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl
index ce541f3..2e56285 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0c0b0c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
index e050ec6..0b71369 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_0c0b0c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0c0b0c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
index e050ec6..0b71369 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_0c0b0c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_0c0b0c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl
index cb90f2a..f2c436f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_0c0b0c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.spvasm
index 30f4862..24ae84c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0c0b0c "textureDimensions_0c0b0c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_0c0b0c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.wgsl
index 2d464fe..a1b7b3e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0c0b0c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, write>;
 
 fn textureDimensions_0c0b0c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0c0b0c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl
index d8a37bf..7b58caf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0d4a7c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl
index 2731228..f2ea7ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0d4a7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0d4a7c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl
index 2731228..f2ea7ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0d4a7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0d4a7c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl
index d835f56..bffed31 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_0d4a7c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.spvasm
index d92dcbe..d295b9e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0d4a7c "textureDimensions_0d4a7c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_0d4a7c = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.wgsl
index 3356f21..8521e14 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0d4a7c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read>;
 
 fn textureDimensions_0d4a7c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0d4a7c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl
index 84f1f0a..85f2b55 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8unorm, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0de70c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.dxc.hlsl
index 4f17617..42fcef5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0de70c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0de70c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.fxc.hlsl
index 4f17617..42fcef5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_0de70c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_0de70c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.glsl
index 400252c..0e8b3ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_0de70c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_0de70c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.spvasm
index bf0f402..0ea8983 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0de70c "textureDimensions_0de70c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_0de70c = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.wgsl
index 38177ff..131b77a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0de70c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
 
 fn textureDimensions_0de70c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0de70c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl
index ba65bb8..e354d6d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0ff9a4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
index 5b339c1..4c0ddd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0ff9a4() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0ff9a4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
index 5b339c1..4c0ddd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_0ff9a4() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_0ff9a4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.spvasm
index 93e1620..259f522 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_0ff9a4 "textureDimensions_0ff9a4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.wgsl
index 7c4485e..1d67a88 100644
--- a/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/0ff9a4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureDimensions_0ff9a4() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_0ff9a4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl
index 8c6f1dab..b7ef42f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_135176();
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.dxc.hlsl
index 52ab676..f3ba8cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_135176() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_135176()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.fxc.hlsl
index 52ab676..f3ba8cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_135176() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_135176()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl
index 9a0c5dc..dbe7545 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_135176() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.spvasm
index 76ae818..f8e5ebb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_135176 "textureDimensions_135176"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_135176 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.wgsl
index 32edd3d..16be082 100644
--- a/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/135176.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureDimensions_135176() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_135176();
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl
index e86ca22..85e8b09 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureDimensions(texture: texture_2d<f32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_13f8db();
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
index a096bce..56e00fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_13f8db() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_13f8db()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
index a096bce..56e00fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_13f8db() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_13f8db()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.glsl
index 7f99b4e..78b70c1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_13f8db() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_13f8db() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.spvasm
index 2418480..ff971f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_13f8db "textureDimensions_13f8db"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v2uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.wgsl
index 72a34f5..144be3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/13f8db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureDimensions_13f8db() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_13f8db();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl
index e6c5842..68bd04d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1417dd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
index ab8eb1b..fadca5b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1417dd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1417dd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
index ab8eb1b..fadca5b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1417dd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1417dd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl
index 8add6b7..1284783 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_1417dd() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.spvasm
index 43924f6..3e2352b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1417dd "textureDimensions_1417dd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_1417dd = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.wgsl
index d928894..6e09bb1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1417dd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, write>;
 
 fn textureDimensions_1417dd() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1417dd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl
index 05f0cda..ac6d4af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15aa17();
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
index 12b2b97..3165963 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_15aa17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_15aa17()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
index 12b2b97..3165963 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_15aa17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_15aa17()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
index e656722..1c45a8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_15aa17() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.spvasm
index 619a299..71588bc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_15aa17 "textureDimensions_15aa17"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_15aa17 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.wgsl
index e521c6e..ee44c28 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15aa17.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, write>;
 
 fn textureDimensions_15aa17() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15aa17();
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl
index 6376428..cd06a8b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureDimensions(texture: texture_2d<u32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15b577();
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl
index 1996367..c9ab7d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_15b577() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_15b577()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl
index 1996367..c9ab7d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_15b577() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_15b577()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.glsl
index 84766f4..6596fe3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_15b577() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_15b577() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.spvasm
index cd85257..e9c0e5f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_15b577 "textureDimensions_15b577"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.wgsl
index 3e30c07..a2db573 100644
--- a/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/15b577.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureDimensions_15b577() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_15b577();
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl
index 38aa6d5..2bdbb12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r8unorm, read_write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18160d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.dxc.hlsl
index 0a9df44..4da4281 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18160d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18160d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.fxc.hlsl
index 0a9df44..4da4281 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18160d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18160d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.spvasm
index 536ebfd..328986a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_18160d "textureDimensions_18160d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_18160d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.wgsl
index 7596745..229cd99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18160d.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read_write>;
 
 fn textureDimensions_18160d() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18160d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl
index 813f3c9..66a0202 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r8unorm, write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18f19f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.dxc.hlsl
index e7f8023..cdf2197 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18f19f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18f19f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.fxc.hlsl
index e7f8023..cdf2197 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_18f19f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_18f19f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.spvasm
index a127b9b..5562016 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_18f19f "textureDimensions_18f19f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_18f19f = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.wgsl
index 2b185cc..14609f8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/18f19f.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, write>;
 
 fn textureDimensions_18f19f() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_18f19f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl
index 013e658..94947e9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureDimensions(texture: texture_3d<i32>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1a2be7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
index 6f36e09..cdc373b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1a2be7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1a2be7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
index 6f36e09..cdc373b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1a2be7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1a2be7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.glsl
index 61107b4..ce5be69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_1a2be7() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_1a2be7() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.spvasm
index 8cdeb42..49dce38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1a2be7 "textureDimensions_1a2be7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
@@ -77,7 +77,7 @@
 %textureDimensions_1a2be7 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %25 %int_0
                OpStore %res %24
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.wgsl
index 67664ad..35d0e9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1a2be7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureDimensions_1a2be7() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1a2be7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl
index 354d822..ba2e18d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1b720f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.dxc.hlsl
index 917df17..ea7f543 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1b720f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1b720f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.fxc.hlsl
index 917df17..ea7f543 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1b720f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1b720f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl
index 440ac56..d4f701c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_1b720f() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.spvasm
index 042a20f..7fa8a81 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1b720f "textureDimensions_1b720f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_1b720f = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.wgsl
index fbf9dca..8ab53f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1b720f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read>;
 
 fn textureDimensions_1b720f() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1b720f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl
index 4fe882c..a8dabf9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureDimensions(texture: texture_3d<f32>, level: i32) -> vec3<u32>
@@ -42,8 +45,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bc428();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
index ea2f71c..3c7d67f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1bc428() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1bc428()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
index ea2f71c..3c7d67f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_1bc428() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_1bc428()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.glsl
index 9cdd54b..fd3e398 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_1bc428() {
   int arg_1 = 1;
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_1bc428() {
   int arg_1 = 1;
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.spvasm
index 1a140bb..83a2a57 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1bc428 "textureDimensions_1bc428"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v3uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v3uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.wgsl
index fb71abe..a260605 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bc428.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureDimensions_1bc428() -> vec3<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bc428();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl
index 317cce5..72f6f1b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureDimensions(texture: texture_2d<f32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bd78c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
index 2a7c536..235b4b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_1bd78c() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1bd78c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
index 2a7c536..235b4b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_1bd78c() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1bd78c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.glsl
index 2f41856..753abfef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_1bd78c() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_1bd78c() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.spvasm
index 28e1c92..aee5eaa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1bd78c "textureDimensions_1bd78c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.wgsl
index 53dcd1c..62421a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1bd78c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureDimensions_1bd78c() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1bd78c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl
index e20c58e..bbc648e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1e4024();
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.dxc.hlsl
index 6a0932b..bc0ec19 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1e4024() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1e4024()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.fxc.hlsl
index 6a0932b..bc0ec19 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_1e4024() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_1e4024()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl
index 1b2ba21..bb31bce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uvec2 textureDimensions_1e4024() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.spvasm
index 575e50b..66d0a3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_1e4024 "textureDimensions_1e4024"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_1e4024 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.wgsl
index adbbeb7..117f71c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/1e4024.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
 
 fn textureDimensions_1e4024() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_1e4024();
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl
index 441701f..7995be9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20eaad();
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.dxc.hlsl
index fa5d0b5..65ffcf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_20eaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_20eaad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.fxc.hlsl
index fa5d0b5..65ffcf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_20eaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_20eaad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.glsl
index ca1be41..6ce06e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_20eaad() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_20eaad() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.spvasm
index e4c859d..46f98a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_20eaad "textureDimensions_20eaad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_20eaad = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.wgsl
index 93ba5d4..2e2eacc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20eaad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
 
 fn textureDimensions_20eaad() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20eaad();
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl
index 3c53f56..090944f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20ecef();
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.dxc.hlsl
index 31ab61ff..91cce4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_20ecef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_20ecef()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.fxc.hlsl
index 31ab61ff..91cce4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_20ecef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_20ecef()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl
index defb923..e14dd1e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 uint textureDimensions_20ecef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.spvasm
index aa54204f..d940b37 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_20ecef "textureDimensions_20ecef"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_20ecef = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.wgsl
index 0ec695a..35bc50e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/20ecef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
 
 fn textureDimensions_20ecef() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_20ecef();
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl
index 79664f4..04ff6b8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_212362();
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.dxc.hlsl
index cdb9781..cef55fa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_212362() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_212362()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.fxc.hlsl
index cdb9781..cef55fa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_212362() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_212362()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl
index 22e4949..d2f1c21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_212362() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.spvasm
index e3cf4ec..321b23e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_212362 "textureDimensions_212362"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_212362 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.wgsl
index a2490f0..04cedde 100644
--- a/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/212362.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read>;
 
 fn textureDimensions_212362() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_212362();
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl
index 037079a..5e05397 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_224113();
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl
index a05aa54..87c11ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_224113() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_224113()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl
index a05aa54..87c11ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_224113() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_224113()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl
index 9c589a0..5bb2ef5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_224113() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.spvasm
index 1a50806..300c1b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_224113 "textureDimensions_224113"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_224113 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.wgsl
index 9cb616d..b56ac22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/224113.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, write>;
 
 fn textureDimensions_224113() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_224113();
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl
index e5786a2..aacc879 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureDimensions(texture: texture_cube_array<u32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_22b5b6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
index cc0491f..72cbb9a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_22b5b6() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_22b5b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
index cc0491f..72cbb9a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_22b5b6() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_22b5b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.spvasm
index 6fa21ef..b9922d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_22b5b6 "textureDimensions_22b5b6"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.wgsl
index a9af9ca..a9b7612 100644
--- a/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/22b5b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureDimensions_22b5b6() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_22b5b6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl
index 969474c..4a7c488 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureDimensions(texture: texture_2d<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_24db07();
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl
index 78831a5..07dc0ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_24db07() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_24db07()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl
index 78831a5..07dc0ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_24db07() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_24db07()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.glsl
index ded9ae2..a56223a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_24db07() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_24db07() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.spvasm
index 718bfa1..cd02a4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_24db07 "textureDimensions_24db07"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_24db07 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.wgsl
index 8407ee7..b547ba9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/24db07.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureDimensions_24db07() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_24db07();
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl
index 7cb5fca..d6c9fa6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r8unorm, write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_25d284();
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.dxc.hlsl
index 954b7a3d..e68cc9f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_25d284() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_25d284()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.fxc.hlsl
index 954b7a3d..e68cc9f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_25d284() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_25d284()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.spvasm
index 7a73f44..d23af7e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_25d284 "textureDimensions_25d284"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_25d284 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.wgsl
index d2a1b6d..f812b4d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/25d284.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, write>;
 
 fn textureDimensions_25d284() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_25d284();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl
index 157bccb..dc40194 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2674d8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
index 9daf4d5..36b6a92 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2674d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2674d8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
index 9daf4d5..36b6a92 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2674d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2674d8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.spvasm
index b87d206..d39b586 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2674d8 "textureDimensions_2674d8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_2674d8 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.wgsl
index 05f137c..e628b0d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2674d8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureDimensions_2674d8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2674d8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl
index 6112dea..2d21a48 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_268ddb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.dxc.hlsl
index fa006c0..b31cdb4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_268ddb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_268ddb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.fxc.hlsl
index fa006c0..b31cdb4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_268ddb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_268ddb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl
index 47f3658..26d59a5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_268ddb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.spvasm
index 1d902ee..9f314f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_268ddb "textureDimensions_268ddb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_268ddb = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.wgsl
index 17b6461..c161d00 100644
--- a/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/268ddb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read>;
 
 fn textureDimensions_268ddb() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_268ddb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl
index a1a0981..25d9373 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureDimensions(texture: texture_1d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_26d6bf();
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
index d48a53a..d115a3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_26d6bf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_26d6bf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
index d48a53a..d115a3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_26d6bf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_26d6bf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.glsl
index 91b8c22..eac6779 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_26d6bf() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_26d6bf() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.spvasm
index 012cb47..bcd7846 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_26d6bf "textureDimensions_26d6bf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_26d6bf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %int_0
                OpStore %res %22
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.wgsl
index 4ae7859..d4a5476 100644
--- a/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/26d6bf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureDimensions_26d6bf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_26d6bf();
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl
index 996e688..67dde12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r8unorm, read_write>) -> vec3<u32>
@@ -43,8 +46,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_282978();
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.dxc.hlsl
index 84e64eb..3d2c089 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_282978() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_282978()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.fxc.hlsl
index 84e64eb..3d2c089 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_282978() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_282978()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.spvasm
index a8f745d..5325433 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_282978 "textureDimensions_282978"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_282978 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.wgsl
index 50f400e..bf369e9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/282978.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read_write>;
 
 fn textureDimensions_282978() -> vec3<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_282978();
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl
index 3202895..9fe0650 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_283b58();
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.dxc.hlsl
index ce27940..f5c9b3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_283b58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_283b58()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.fxc.hlsl
index ce27940..f5c9b3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_283b58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_283b58()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.glsl
index 4f7eb25..751160a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_283b58() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_283b58() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.spvasm
index 15cfe30..45758f5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_283b58 "textureDimensions_283b58"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_283b58 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.wgsl
index f06a83a..095aa80 100644
--- a/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/283b58.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
 
 fn textureDimensions_283b58() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_283b58();
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl
index 3fcd9ed..9e09d21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_284c27();
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.dxc.hlsl
index 31e71b3..e81c788 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_284c27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_284c27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.fxc.hlsl
index 31e71b3..e81c788 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_284c27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_284c27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.spvasm
index 57622f1..3c8b4e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_284c27 "textureDimensions_284c27"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_284c27 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.wgsl
index d4b5edb..2046902 100644
--- a/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/284c27.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read>;
 
 fn textureDimensions_284c27() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_284c27();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl
index 29dc5d0..56c24e0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2a58b7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl
index b49bb21..72e388a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2a58b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2a58b7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl
index b49bb21..72e388a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_2a58b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2a58b7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.glsl
index 0f86d67..b707e3c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_2a58b7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_2a58b7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.spvasm
index 60d7087..06b5860 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2a58b7 "textureDimensions_2a58b7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_2a58b7 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.wgsl
index 2fd5e75..e003c9a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2a58b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureDimensions_2a58b7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2a58b7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl
index d88bea3..5c91115 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<bgra8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2bafdf();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl
index eda2b73..f0b9f24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2bafdf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2bafdf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl
index eda2b73..f0b9f24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2bafdf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2bafdf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl
index de5fe89..8444594 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uint textureDimensions_2bafdf() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.spvasm
index 11028ca..127113d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2bafdf "textureDimensions_2bafdf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_2bafdf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.wgsl
index 4054603..b779b21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2bafdf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read>;
 
 fn textureDimensions_2bafdf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2bafdf();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl
index 67d6a5e..90a2aba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2dc5c5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl
index 18f3768..a0802c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2dc5c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2dc5c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl
index 18f3768..a0802c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_2dc5c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_2dc5c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl
index 5ddc117..e296601 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_2dc5c5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.spvasm
index a49cca6..5ade20c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2dc5c5 "textureDimensions_2dc5c5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_2dc5c5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.wgsl
index d652a63..f85fc0e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2dc5c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read>;
 
 fn textureDimensions_2dc5c5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2dc5c5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl
index d8c444f..45796a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureDimensions(texture: texture_2d<i32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2e443d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
index 2efa093..9ba833c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2e443d() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2e443d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
index 2efa093..9ba833c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2e443d() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2e443d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.glsl
index a564de9..2daf303 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_2e443d() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_2e443d() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.spvasm
index 0a8a51b..6b8e97e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2e443d "textureDimensions_2e443d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.wgsl
index e200a68..dadcfd2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2e443d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureDimensions_2e443d() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2e443d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl
index 94273d4..b9c34e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureDimensions(texture: texture_2d_array<f32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2fd2a4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
index 4c9fdc4..83dd4cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2fd2a4() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2fd2a4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
index 4c9fdc4..83dd4cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_2fd2a4() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_2fd2a4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.glsl
index 8751208..8fa4cdf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_2fd2a4() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_2fd2a4() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.spvasm
index 64dbe5e..f765c92 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2fd2a4 "textureDimensions_2fd2a4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.wgsl
index 6f9adbe..5c69dbf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2fd2a4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureDimensions_2fd2a4() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2fd2a4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl
index 0335ceb..22c5476 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2ff32a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl
index 7db40a9..c797222 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_2ff32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_2ff32a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl
index 7db40a9..c797222 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_2ff32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_2ff32a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl
index 48728a3..aa09174 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_2ff32a() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.spvasm
index 79dab7e..4408ff4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_2ff32a "textureDimensions_2ff32a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_2ff32a = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.wgsl
index 61a3c82..75b04d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/2ff32a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read>;
 
 fn textureDimensions_2ff32a() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_2ff32a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl
index 6b12772..d74a6b1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_305dd5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.dxc.hlsl
index b1d14e9..957f31a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_305dd5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_305dd5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.fxc.hlsl
index b1d14e9..957f31a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_305dd5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_305dd5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl
index 0b3afa1..d60d805 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_305dd5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.spvasm
index 3d36098..18249ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_305dd5 "textureDimensions_305dd5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_305dd5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.wgsl
index b9c6491..3192b7f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/305dd5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureDimensions_305dd5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_305dd5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl
index c24bb4b..a1a6d89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31799c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl
index da27bd4..e6e22f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31799c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31799c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl
index da27bd4..e6e22f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31799c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31799c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl
index ef359b4..76eb31a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_31799c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.spvasm
index b89985f..da8aeb2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_31799c "textureDimensions_31799c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_31799c = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.wgsl
index 6708be9..5228f3f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31799c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, write>;
 
 fn textureDimensions_31799c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31799c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl
index ea9cf9e..19c13e0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31d00d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.dxc.hlsl
index e2ad60e..383d0d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31d00d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31d00d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.fxc.hlsl
index e2ad60e..383d0d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_31d00d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_31d00d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl
index 3e1dc1b..d33691a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec3 textureDimensions_31d00d() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.spvasm
index 2b228f3a..d5312ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_31d00d "textureDimensions_31d00d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_31d00d = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.wgsl
index 726f817..bb607fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/31d00d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
 
 fn textureDimensions_31d00d() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_31d00d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl
index bd7c063..e7907a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_325338();
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.dxc.hlsl
index 0392443..aad6d69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_325338() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_325338()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.fxc.hlsl
index 0392443..aad6d69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_325338() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_325338()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.glsl
index 4fcb64d..d2d5c7d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_325338() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_325338() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.spvasm
index 4051084..416f3fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_325338 "textureDimensions_325338"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_325338 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.wgsl
index 55aa260..dfa19bd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/325338.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
 
 fn textureDimensions_325338() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_325338();
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl
index bfec234..eb529a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureDimensions(texture: texture_cube_array<u32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_346fee();
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl
index df79320..9a30b7f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_346fee() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_346fee()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl
index df79320..9a30b7f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_346fee() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_346fee()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.spvasm
index 456fafe..69082bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_346fee "textureDimensions_346fee"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %30 %31
          %27 = OpVectorShuffle %v2uint %28 %28 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.wgsl
index 1308d19..7f2dcad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/346fee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureDimensions_346fee() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_346fee();
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl
index 399f816..18ebd48 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35a7e5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
index 0f3f83d..baf93a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35a7e5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35a7e5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
index 0f3f83d..baf93a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35a7e5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35a7e5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl
index e33c0cf..4075611 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_35a7e5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.spvasm
index ef047c0..c96cb87 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_35a7e5 "textureDimensions_35a7e5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_35a7e5 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.wgsl
index 52ce426..d7b7816 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35a7e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, write>;
 
 fn textureDimensions_35a7e5() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35a7e5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl
index 16bbf34..3fd092a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35ee69();
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
index cf0695f..719cebb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35ee69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35ee69()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
index cf0695f..719cebb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_35ee69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_35ee69()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.spvasm
index 7204bd8..96991d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_35ee69 "textureDimensions_35ee69"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_35ee69 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.wgsl
index f038514..fa6fb50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/35ee69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, write>;
 
 fn textureDimensions_35ee69() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_35ee69();
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl
index 6f75d6e..33307c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_36eeb7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl
index 57cb792..ef57f27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_36eeb7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_36eeb7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl
index 57cb792..ef57f27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_36eeb7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_36eeb7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.glsl
index 45dcb14..2fe5679 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_36eeb7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_36eeb7() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.spvasm
index c10b04c..9ecf888 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_36eeb7 "textureDimensions_36eeb7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_36eeb7 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.wgsl
index 20f6a21..723e049 100644
--- a/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/36eeb7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureDimensions_36eeb7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_36eeb7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl
index 2a315f1..09924ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_378a65();
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl
index 9c1c332..745a703 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_378a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_378a65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl
index 9c1c332..745a703 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_378a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_378a65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl
index c527cc5..2bff7f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_378a65() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.spvasm
index 4787baa..5987a28 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_378a65 "textureDimensions_378a65"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_378a65 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.wgsl
index 79a1a8f..0fb9976 100644
--- a/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/378a65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, write>;
 
 fn textureDimensions_378a65() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_378a65();
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl
index cfbdfe8..1b85788 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureDimensions(texture: texture_cube<f32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_382b16();
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl
index bdd55ba..d1059a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_382b16() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_382b16()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl
index bdd55ba..d1059a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_382b16() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_382b16()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.glsl
index 088cb3b..ee00bf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_382b16() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_382b16() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.spvasm
index 0f7599e..759762a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_382b16 "textureDimensions_382b16"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v2uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.wgsl
index 964c4ac..8f422aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/382b16.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureDimensions_382b16() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_382b16();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl
index 35d0989..8bb9bbd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3834f8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.dxc.hlsl
index 3acfbef..34b5fc6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3834f8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3834f8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.fxc.hlsl
index 3acfbef..34b5fc6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3834f8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3834f8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl
index b528dd7..d9a5ead 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uvec2 textureDimensions_3834f8() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.spvasm
index 6e17440..677c265 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3834f8 "textureDimensions_3834f8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_3834f8 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.wgsl
index 0480cf3..d8b4de7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3834f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureDimensions_3834f8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3834f8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl
index 896e2d2..ec2f637 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_38c9ca();
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl
index c4f6899..5e19337 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_38c9ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_38c9ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl
index c4f6899..5e19337 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_38c9ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_38c9ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.glsl
index 06c85ee..05f25f8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_38c9ca() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_38c9ca() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.spvasm
index e55ffe0..8844e06 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_38c9ca "textureDimensions_38c9ca"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_38c9ca = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.wgsl
index 16c7f6f..bb35c93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/38c9ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureDimensions_38c9ca() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_38c9ca();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl
index 3217115..dc7f6d5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureDimensions(texture: texture_cube_array<i32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3963d0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
index dfe958a..85d66f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3963d0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3963d0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
index dfe958a..85d66f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3963d0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3963d0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.spvasm
index 0c8c9de..389a7ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3963d0 "textureDimensions_3963d0"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %uint %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.wgsl
index 4af2af7..59b7825 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3963d0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureDimensions_3963d0() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3963d0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl
index be73c8b..fdf0186 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_397dab();
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.dxc.hlsl
index ab761b5..188c425 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_397dab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_397dab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.fxc.hlsl
index ab761b5..188c425 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_397dab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_397dab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl
index 67ff684..afd7c33 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_397dab() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.spvasm
index e49b1b5..02b63af 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_397dab "textureDimensions_397dab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_397dab = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.wgsl
index 8ff0955..f8837b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/397dab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureDimensions_397dab() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_397dab();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl
index 8168572..ba51ff8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a5bb1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
index 41ede51..d63b040 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_3a5bb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_3a5bb1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
index 41ede51..d63b040 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_3a5bb1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_3a5bb1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl
index 765951b..30d6fb2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_3a5bb1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.spvasm
index 587b0cc..7a41ac9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3a5bb1 "textureDimensions_3a5bb1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_3a5bb1 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.wgsl
index 7d2e79e..9f829bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a5bb1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, write>;
 
 fn textureDimensions_3a5bb1() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a5bb1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl
index 81310aa..a753688 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a7b69();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
index 09d3fa2..456fe67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3a7b69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3a7b69()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
index 09d3fa2..456fe67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3a7b69() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3a7b69()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl
index 21b27ab..862a71e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_3a7b69() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.spvasm
index f9e6a54..3d85010 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3a7b69 "textureDimensions_3a7b69"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_3a7b69 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.wgsl
index 17eea7d..6022e52 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3a7b69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureDimensions_3a7b69() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3a7b69();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl
index 25c4d95..f30a62d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3af3e7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
index a9adc4f..b94c179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_3af3e7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_3af3e7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
index a9adc4f..b94c179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_3af3e7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_3af3e7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl
index d8753b6..86ea587 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_3af3e7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.spvasm
index da7799b..2567aec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3af3e7 "textureDimensions_3af3e7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_3af3e7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.wgsl
index 8cb2d89..ec1ae01 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3af3e7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, write>;
 
 fn textureDimensions_3af3e7() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3af3e7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl
index 529cae6..e90ed4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureDimensions(texture: texture_depth_2d) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3b38f6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
index 48fa670..3900041 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3b38f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3b38f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
index 48fa670..3900041 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3b38f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3b38f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.glsl
index 5b8a15b..73d3254 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_3b38f6() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_3b38f6() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.spvasm
index deb97c7..e42a550 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3b38f6 "textureDimensions_3b38f6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_3b38f6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.wgsl
index fc18b34..9683beb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3b38f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureDimensions_3b38f6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3b38f6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl
index f118105..ea5b545 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3baab5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
index 2af7cb3..71eec94 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3baab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3baab5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
index 2af7cb3..71eec94 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3baab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3baab5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl
index 482e6f5..5751469 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_3baab5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.spvasm
index da3e969..c7c1cbb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3baab5 "textureDimensions_3baab5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_3baab5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.wgsl
index fd31f98..ce2c110 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3baab5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureDimensions_3baab5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3baab5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl
index 8c201ff..3e814db 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3bf12a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl
index ecce472..7789859 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3bf12a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3bf12a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl
index ecce472..7789859 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_3bf12a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3bf12a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl
index bba9dab..139c7a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uvec2 textureDimensions_3bf12a() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.spvasm
index 496f188..346e2f8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3bf12a "textureDimensions_3bf12a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_3bf12a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.wgsl
index 4360cf7..a4dd54a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3bf12a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureDimensions_3bf12a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3bf12a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl
index ed3b165..8557f43 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureDimensions(texture: texture_cube_array<i32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3c66f0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
index c23575d..68068d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3c66f0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3c66f0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
index c23575d..68068d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3c66f0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3c66f0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.spvasm
index 3c5885c..c8f2a7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3c66f0 "textureDimensions_3c66f0"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.wgsl
index 55a59cf..c6a3082 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3c66f0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureDimensions_3c66f0() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3c66f0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl
index f2b54d9..725e7a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureDimensions(texture: texture_multisampled_2d<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3f3474();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
index e26a378..c8e36dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3f3474() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3f3474()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
index e26a378..c8e36dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3f3474() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3f3474()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.glsl
index 23a872c..d80011f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_3f3474() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_3f3474() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.spvasm
index f000b98..6195f53 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3f3474 "textureDimensions_3f3474"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_3f3474 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.wgsl
index 8cf9008..0ef69d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3f3474.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureDimensions_3f3474() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3f3474();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl
index b3ec857..714b513 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureDimensions(texture: texture_2d_array<f32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3fc3dc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
index 2dcd9db..a86b874 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3fc3dc() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3fc3dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
index 2dcd9db..a86b874 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3fc3dc() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3fc3dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.glsl
index c897bfb..5eddc53 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_3fc3dc() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_3fc3dc() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.spvasm
index 43c5a51..862fbe0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3fc3dc "textureDimensions_3fc3dc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %30 %31
          %27 = OpVectorShuffle %v2uint %28 %28 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.wgsl
index cdca68c..96fb8c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3fc3dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureDimensions_3fc3dc() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3fc3dc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl
index 266ff8b..7728089 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3ff0a5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl
index b4e5610..409d9c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3ff0a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3ff0a5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl
index b4e5610..409d9c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_3ff0a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_3ff0a5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl
index cef1986..e7a5455 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_3ff0a5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.spvasm
index e01fff6..881de02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_3ff0a5 "textureDimensions_3ff0a5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_3ff0a5 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.wgsl
index aa34739..adf3f6d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/3ff0a5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureDimensions_3ff0a5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_3ff0a5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl
index 38ef2ef..828ff19 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40c671();
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl
index 1ebabb8..aa5fb98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_40c671() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_40c671()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl
index 1ebabb8..aa5fb98 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_40c671() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_40c671()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl
index 0e3d094..d6277be 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_40c671() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.spvasm
index 90b2a20..76a4179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_40c671 "textureDimensions_40c671"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_40c671 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.wgsl
index 3494c29..1a419e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40c671.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, write>;
 
 fn textureDimensions_40c671() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40c671();
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl
index 5fda4a2..b83f38f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r8unorm, read>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40da20();
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.dxc.hlsl
index a3a8aab..a2f3609 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_40da20() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40da20()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.fxc.hlsl
index a3a8aab..a2f3609 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_40da20() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40da20()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.spvasm
index 3daff3f..6b0f847 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_40da20 "textureDimensions_40da20"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_40da20 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.wgsl
index c8d1b8a..89e6954 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40da20.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read>;
 
 fn textureDimensions_40da20() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40da20();
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl
index e58e2bc..bd0b439 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40ecf4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
index bdee881..2b104f8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_40ecf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40ecf4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
index bdee881..2b104f8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_40ecf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_40ecf4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl
index b23c546..2521a5a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_40ecf4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.spvasm
index fa1fdf6..af95f40 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_40ecf4 "textureDimensions_40ecf4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_40ecf4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.wgsl
index a978f80..da3a84c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/40ecf4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureDimensions_40ecf4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_40ecf4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl
index cd90a0a..91f9240 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_41545f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl
index 70788c3..6c8350c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_41545f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_41545f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl
index 70788c3..6c8350c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_41545f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_41545f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl
index 5fd5518..a30006d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_41545f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.spvasm
index 6467d2a..2e2f88a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_41545f "textureDimensions_41545f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_41545f = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.wgsl
index 5896f00..7b974ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/41545f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureDimensions_41545f() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_41545f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl
index 0c1a24d..ccf91b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_423519();
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.dxc.hlsl
index 30206bc..d8b9c10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_423519() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_423519()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.fxc.hlsl
index 30206bc..d8b9c10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_423519() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_423519()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl
index 2e5e30b..e001f81 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_423519() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.spvasm
index bcd8fc8..814ecd3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_423519 "textureDimensions_423519"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_423519 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.wgsl
index e866326..dfe3ad5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/423519.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read>;
 
 fn textureDimensions_423519() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_423519();
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl
index 93e4dad..abc7c56 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_427f92();
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.dxc.hlsl
index 7025b2a..0e8bbde 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_427f92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_427f92()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.fxc.hlsl
index 7025b2a..0e8bbde 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_427f92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_427f92()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.glsl
index 61aff2d..40d1603 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_427f92() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_427f92() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.spvasm
index e9993ce..785e183 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_427f92 "textureDimensions_427f92"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_427f92 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.wgsl
index 3196bdc..95528c2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/427f92.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureDimensions_427f92() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_427f92();
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl
index 58a827b..dbe5eb5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_439651();
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl
index 02f0a02..23ae3b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_439651() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_439651()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl
index 02f0a02..23ae3b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_439651() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_439651()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.spvasm
index c11d388..45596b4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_439651 "textureDimensions_439651"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_439651 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.wgsl
index cb65e4a..bce2820 100644
--- a/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/439651.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, write>;
 
 fn textureDimensions_439651() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_439651();
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl
index 2ccc63e..844db97 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureDimensions(texture: texture_2d_array<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_445376();
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl
index d7cd926..06031a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_445376() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_445376()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl
index d7cd926..06031a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_445376() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_445376()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.glsl
index 888383d..72a9e05 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_445376() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_445376() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.spvasm
index 3fe653f..06927e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_445376 "textureDimensions_445376"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_445376 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.wgsl
index bc19315..37df87c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/445376.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureDimensions_445376() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_445376();
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl
index ade9410..a7ced7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_44b358();
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl
index 1554ce8..60d43e7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_44b358() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_44b358()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl
index 1554ce8..60d43e7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_44b358() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_44b358()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl
index d4226d8..34aa6c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_44b358() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.spvasm
index fa85a56..8059a50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_44b358 "textureDimensions_44b358"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_44b358 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.wgsl
index 2f1476c..34bb051 100644
--- a/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/44b358.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, write>;
 
 fn textureDimensions_44b358() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_44b358();
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl
index 1c81769..050a673 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_452fc1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
index 1ee752a5..f7efea9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_452fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_452fc1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
index 1ee752a5..f7efea9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_452fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_452fc1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl
index 161b50c..6f2cc2f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_452fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.spvasm
index 7bd0107..dc26d8c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_452fc1 "textureDimensions_452fc1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_452fc1 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.wgsl
index 7927f34..af6b2d5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/452fc1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureDimensions_452fc1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_452fc1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl
index 2e7cc17..0f65aad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureDimensions(texture: texture_2d_array<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_46f0fc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
index 474b153..b89acbf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_46f0fc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_46f0fc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
index 474b153..b89acbf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_46f0fc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_46f0fc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.glsl
index 12fa9fe..b3fa523 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_46f0fc() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_46f0fc() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.spvasm
index ea0d0ae..49eef8d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_46f0fc "textureDimensions_46f0fc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_46f0fc = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.wgsl
index 223b755..5590839 100644
--- a/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/46f0fc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureDimensions_46f0fc() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_46f0fc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl
index a94111d..8309035 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4716a4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.dxc.hlsl
index 70cd007..7d10456 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4716a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4716a4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.fxc.hlsl
index 70cd007..7d10456 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4716a4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4716a4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl
index 2225337..b0910ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_4716a4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.spvasm
index cdff3ea..af2b564 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4716a4 "textureDimensions_4716a4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_4716a4 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.wgsl
index 5401350..683d709 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4716a4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureDimensions_4716a4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4716a4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl
index da07b93..d7781c5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_475c10();
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.dxc.hlsl
index 027d6e9..dbee0a5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_475c10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_475c10()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.fxc.hlsl
index 027d6e9..dbee0a5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_475c10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_475c10()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl
index 16718d4..8bc91b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_475c10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.spvasm
index b683a9b..2b7366e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_475c10 "textureDimensions_475c10"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_475c10 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.wgsl
index 54e8ff8..69b6d63 100644
--- a/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/475c10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read>;
 
 fn textureDimensions_475c10() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_475c10();
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl
index bb1fd65..72f2295 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureDimensions(texture: texture_cube<f32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_49a067();
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl
index 72b13f8..c04ee12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_49a067() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_49a067()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl
index 72b13f8..c04ee12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_49a067() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_49a067()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.glsl
index 14db5e9..ed681aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_49a067() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_49a067() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.spvasm
index e5b8406..9739c62 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_49a067 "textureDimensions_49a067"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.wgsl
index 7daf64e..8bfd8b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/49a067.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureDimensions_49a067() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_49a067();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl
index 026bfa8..15f6e99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4acec7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
index 4214b5e..6b735d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_4acec7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4acec7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
index 4214b5e..6b735d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_4acec7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4acec7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.spvasm
index 133d740..1839195 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4acec7 "textureDimensions_4acec7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_4acec7 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.wgsl
index d861528..3e42203 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4acec7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureDimensions_4acec7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4acec7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl
index d7b47e2..1c3aad6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8unorm, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4b26ef();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
index 2616344..db49ac8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4b26ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4b26ef()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
index 2616344..db49ac8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4b26ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4b26ef()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl
index 8151cfc..74179d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_4b26ef() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.spvasm
index 2044be2..2ad900c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4b26ef "textureDimensions_4b26ef"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4b26ef = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.wgsl
index deff631..16b8015 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4b26ef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, write>;
 
 fn textureDimensions_4b26ef() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4b26ef();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl
index 1ffd4d7..f4eb13c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureDimensions(texture: texture_2d<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4be71b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
index 646604a..146a1ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4be71b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4be71b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
index 646604a..146a1ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4be71b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4be71b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.glsl
index c1f962a..87bda95 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_4be71b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_4be71b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.spvasm
index dde943c..c285648 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4be71b "textureDimensions_4be71b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_4be71b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.wgsl
index eff8954..837d2d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4be71b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureDimensions_4be71b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4be71b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl
index 8e7aea4..631d653 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d1f71();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl
index 06b23e1..1a36e03 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4d1f71() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4d1f71()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl
index 06b23e1..1a36e03 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_4d1f71() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_4d1f71()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.spvasm
index d4c58c7..1709500 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4d1f71 "textureDimensions_4d1f71"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_4d1f71 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.wgsl
index f108089..e1425e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d1f71.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureDimensions_4d1f71() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d1f71();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl
index 35ba76c..51ae3cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d27b3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl
index 4c85d86..0699c18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4d27b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4d27b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl
index 4c85d86..0699c18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4d27b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4d27b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl
index 339f679..3d0436e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 uvec3 textureDimensions_4d27b3() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.spvasm
index 87f507c..104637a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4d27b3 "textureDimensions_4d27b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4d27b3 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.wgsl
index 0cb11b8..bfeaa09 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4d27b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
 
 fn textureDimensions_4d27b3() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4d27b3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl
index 103b4db..4379450 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4df14c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.dxc.hlsl
index 89d85bb..a2dc490 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4df14c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4df14c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.fxc.hlsl
index 89d85bb..a2dc490 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_4df14c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_4df14c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.spvasm
index 505d465..0ce0eea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4df14c "textureDimensions_4df14c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4df14c = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.wgsl
index 0b9b4ff..afd4b3e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4df14c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
 
 fn textureDimensions_4df14c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4df14c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl
index ce2ef12..d41c791 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4e540a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.dxc.hlsl
index 3706280..c76100a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_4e540a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_4e540a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.fxc.hlsl
index 3706280..c76100a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_4e540a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_4e540a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl
index e79ee6f..cb646db 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uint textureDimensions_4e540a() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.spvasm
index 036ca90..b69296a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_4e540a "textureDimensions_4e540a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_4e540a = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.wgsl
index fae0598..939d9f1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/4e540a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
 
 fn textureDimensions_4e540a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_4e540a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl
index c4aa7ee..6260b67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureDimensions(texture: texture_2d_array<u32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_528c0e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
index 8aa6ee1..a18c0cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_528c0e() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_528c0e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
index 8aa6ee1..a18c0cc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_528c0e() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_528c0e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.glsl
index d5a5917..720209b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_528c0e() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_528c0e() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.spvasm
index 7546a25..9485eb3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_528c0e "textureDimensions_528c0e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %30 %31
          %27 = OpVectorShuffle %v2uint %28 %28 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.wgsl
index 77f8142..ebe2751 100644
--- a/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/528c0e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureDimensions_528c0e() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_528c0e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl
index 18d151c..da953dd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_52cf60();
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.dxc.hlsl
index 6c9bcd1..bac6d79 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_52cf60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_52cf60()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.fxc.hlsl
index 6c9bcd1..bac6d79 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_52cf60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_52cf60()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.spvasm
index 37b12d3..1eff127 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_52cf60 "textureDimensions_52cf60"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_52cf60 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.wgsl
index f52f6f1..5a1afe6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/52cf60.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read>;
 
 fn textureDimensions_52cf60() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_52cf60();
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl
index f6356b2..b5a929e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_534ef8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.dxc.hlsl
index fbdaf14..0642833 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_534ef8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_534ef8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.fxc.hlsl
index fbdaf14..0642833 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_534ef8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_534ef8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl
index 8aad6f8..8414f8d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_534ef8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.spvasm
index 3b90040..0b48a27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_534ef8 "textureDimensions_534ef8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_534ef8 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.wgsl
index e4ea83c..7e64f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/534ef8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read>;
 
 fn textureDimensions_534ef8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_534ef8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl
index a8f6aff..bc3864f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r8unorm, write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_542c62();
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.dxc.hlsl
index f235ef2..417ed35 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_542c62() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_542c62()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.fxc.hlsl
index f235ef2..417ed35 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_542c62() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_542c62()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.spvasm
index bc81cf7..930eaa3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_542c62 "textureDimensions_542c62"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_542c62 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.wgsl
index 15e4653..bc901ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/542c62.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, write>;
 
 fn textureDimensions_542c62() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_542c62();
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl
index 8b04658..85fd4b3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<bgra8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_55fdeb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl
index c054967..33ff1ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_55fdeb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_55fdeb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl
index c054967..33ff1ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_55fdeb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_55fdeb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.glsl
index d289876..9113039 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_55fdeb() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_55fdeb() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.spvasm
index 05fbc50..ac32d6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_55fdeb "textureDimensions_55fdeb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_55fdeb = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.wgsl
index e351c45..fbae82c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/55fdeb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
 
 fn textureDimensions_55fdeb() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_55fdeb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl
index 04ba6f0..87e51b0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<bgra8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5703b3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.dxc.hlsl
index e3deb39..0788f86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_5703b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5703b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.fxc.hlsl
index e3deb39..0788f86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_5703b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5703b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.glsl
index 41331f9..3085746 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_5703b3() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_5703b3() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.spvasm
index 5e28743..01fbbcc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_5703b3 "textureDimensions_5703b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_5703b3 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.wgsl
index 4e825e9..3aee890 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5703b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
 
 fn textureDimensions_5703b3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5703b3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl
index 88813a2..44ed3d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r8unorm, read_write>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_578e75();
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.dxc.hlsl
index d377d62..cb2e9fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_578e75() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_578e75()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.fxc.hlsl
index d377d62..cb2e9fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_578e75() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_578e75()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.spvasm
index 1b37edb..b473455 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_578e75 "textureDimensions_578e75"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_578e75 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.wgsl
index eeabf1d..874e339 100644
--- a/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/578e75.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureDimensions_578e75() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_578e75();
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl
index 5d52b5f..0eed5b1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_579eee();
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.dxc.hlsl
index 36c5394..79cbf99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_579eee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_579eee()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.fxc.hlsl
index 36c5394..79cbf99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_579eee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_579eee()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.glsl
index 2bd352f..21f4b26 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_579eee() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_579eee() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.spvasm
index 5bd3e9b..561c18c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_579eee "textureDimensions_579eee"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_579eee = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.wgsl
index 82ec6a9..c544585 100644
--- a/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/579eee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
 
 fn textureDimensions_579eee() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_579eee();
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl
index cc12ddd..d92653d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_58a82d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
index a118217..8ddd44f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_58a82d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_58a82d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
index a118217..8ddd44f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_58a82d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_58a82d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl
index 718680c..e4ce75e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_58a82d() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.spvasm
index 6824a6b..32ec9cd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_58a82d "textureDimensions_58a82d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_58a82d = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.wgsl
index fe37d2a..9eba345 100644
--- a/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/58a82d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, write>;
 
 fn textureDimensions_58a82d() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_58a82d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl
index a1ff9a7..e24dee7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_591981();
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl
index d504f19..0dab7ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_591981() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_591981()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl
index d504f19..0dab7ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_591981() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_591981()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl
index 42c73f0..bd6ce0d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_591981() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.spvasm
index 3ff7058..afb9701 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_591981 "textureDimensions_591981"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_591981 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.wgsl
index e787395..9698542 100644
--- a/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/591981.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, write>;
 
 fn textureDimensions_591981() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_591981();
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl
index f9af455..22665aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_599ab5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
index 138ed9f..23cd66b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_599ab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_599ab5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
index 138ed9f..23cd66b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_599ab5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_599ab5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl
index c201763..c1da6f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_599ab5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.spvasm
index 87d7f72..8b73b95 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_599ab5 "textureDimensions_599ab5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_599ab5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.wgsl
index 13a4fc6..c940340 100644
--- a/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/599ab5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, write>;
 
 fn textureDimensions_599ab5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_599ab5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl
index a5434b0..31286aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<bgra8unorm, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5b4b10();
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
index 2ee5848..c9bf84c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_5b4b10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_5b4b10()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
index 2ee5848..c9bf84c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_5b4b10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_5b4b10()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl
index fdf2377..0bf5680 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_5b4b10() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.spvasm
index f17f678..50a926b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_5b4b10 "textureDimensions_5b4b10"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_5b4b10 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.wgsl
index b5db4ad..019e948 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5b4b10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, write>;
 
 fn textureDimensions_5b4b10() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5b4b10();
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl
index c5b9ced..767ee44 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureDimensions(texture: texture_1d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5df042();
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl
index ff07b9d..b4d3375 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_5df042() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5df042()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl
index ff07b9d..b4d3375 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_5df042() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_5df042()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.glsl
index 492b443..3614951 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_5df042() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_5df042() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.spvasm
index 98c0a72..7c807ba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_5df042 "textureDimensions_5df042"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureDimensions_5df042 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %uint %24 %int_0
                OpStore %res %23
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.wgsl
index 4e04c2b..006c16a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/5df042.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureDimensions_5df042() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_5df042();
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl
index 9a7c5fe..7eda316 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_607979();
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl
index e968dce..9d61bfa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_607979() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_607979()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl
index e968dce..9d61bfa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_607979() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_607979()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl
index 40833c3..f356ffd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_607979() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.spvasm
index 44b49a2..990b65d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_607979 "textureDimensions_607979"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_607979 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.wgsl
index b92feb1..086b2c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/607979.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, write>;
 
 fn textureDimensions_607979() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_607979();
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl
index 2d93d90..d99f791 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_609d34();
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.dxc.hlsl
index 343a409..8309511 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_609d34() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_609d34()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.fxc.hlsl
index 343a409..8309511 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_609d34() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_609d34()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl
index 6a546f1..e830c6c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_609d34() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.spvasm
index ab6279f..f6f966f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_609d34 "textureDimensions_609d34"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_609d34 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.wgsl
index aa5f5d4..7ff11a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/609d34.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureDimensions_609d34() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_609d34();
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl
index dbf4b41..1b9d4f3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_617dc8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.dxc.hlsl
index 6f8308e..a5e9b2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_617dc8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_617dc8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.fxc.hlsl
index 6f8308e..a5e9b2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_617dc8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_617dc8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl
index 6f1eea2..db59d9f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 uvec3 textureDimensions_617dc8() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.spvasm
index 81701e2..0f08270 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_617dc8 "textureDimensions_617dc8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_617dc8 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.wgsl
index ebd801d..ade8651 100644
--- a/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/617dc8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
 
 fn textureDimensions_617dc8() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_617dc8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl
index 8db18a6..f81156d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureDimensions(texture: texture_2d_array<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62cb5a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
index 18c9d95..f5c9fe7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62cb5a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62cb5a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
index 18c9d95..f5c9fe7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62cb5a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62cb5a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.glsl
index fb49cff..48c19f1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_62cb5a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_62cb5a() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.spvasm
index 2134dea..2b21f76 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_62cb5a "textureDimensions_62cb5a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -78,7 +78,7 @@
 %textureDimensions_62cb5a = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %int_0
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.wgsl
index aab6ffb..99d5b81 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62cb5a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureDimensions_62cb5a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62cb5a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl
index efdae6a..671ab09 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62e7ae();
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl
index dc4eac2..4f6ac4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62e7ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62e7ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl
index dc4eac2..4f6ac4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_62e7ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_62e7ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl
index 703426f..da9457a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_62e7ae() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.spvasm
index 0f24380..7d768cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_62e7ae "textureDimensions_62e7ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_62e7ae = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.wgsl
index 02a74fb..7c96729 100644
--- a/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/62e7ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read>;
 
 fn textureDimensions_62e7ae() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_62e7ae();
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl
index ec68a83..66a070c1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureDimensions(texture: texture_cube<i32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_64dc74();
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
index 469e5b6..c46e5ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_64dc74() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_64dc74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
index 469e5b6..c46e5ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_64dc74() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_64dc74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.glsl
index 891a7b9..bc5244d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_64dc74() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_64dc74() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.spvasm
index 0b6fa41..6b6e44e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_64dc74 "textureDimensions_64dc74"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.wgsl
index b436930..2fee81c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/64dc74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureDimensions_64dc74() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_64dc74();
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl
index cad83c8..65586d3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_674058();
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl
index d33607b..97bcee9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_674058() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_674058()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl
index d33607b..97bcee9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_674058() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_674058()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl
index fd38d7e..12cb22b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_674058() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.spvasm
index d271b43..2ee78a3f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_674058 "textureDimensions_674058"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_674058 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.wgsl
index fb06937..4b811cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/674058.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureDimensions_674058() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_674058();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl
index c2a4cab..38b8251 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dae40();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.dxc.hlsl
index 74e4a59..2121179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dae40() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dae40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.fxc.hlsl
index 74e4a59..2121179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dae40() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dae40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.spvasm
index 9dc6849..eb52fae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6dae40 "textureDimensions_6dae40"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_6dae40 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.wgsl
index 205bf25..b4b36aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dae40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read>;
 
 fn textureDimensions_6dae40() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dae40();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl
index 3de889b..ed4e13f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dbef4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl
index d1d3ac9..49d850b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dbef4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dbef4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl
index d1d3ac9..49d850b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6dbef4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6dbef4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.spvasm
index 9827538..248f562 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6dbef4 "textureDimensions_6dbef4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_6dbef4 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.wgsl
index 906db61..44267ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6dbef4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read>;
 
 fn textureDimensions_6dbef4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6dbef4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl
index 05f6041..d5e4633 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureDimensions(texture: texture_3d<u32>, level: u32) -> vec3<u32>
@@ -42,8 +45,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e6c7a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
index df93400..501e1ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6e6c7a() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6e6c7a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
index df93400..501e1ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_6e6c7a() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_6e6c7a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.glsl
index 4d51cd2..1ab8489 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_6e6c7a() {
   uint arg_1 = 1u;
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_6e6c7a() {
   uint arg_1 = 1u;
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.spvasm
index 6bd67ce..1b21577 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6e6c7a "textureDimensions_6e6c7a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v3uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v3uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.wgsl
index 27859c4..2cd99c7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e6c7a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureDimensions_6e6c7a() -> vec3<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e6c7a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl
index a57b32b..c9992c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e72c5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl
index aef65e9..bbc4423 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6e72c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6e72c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl
index aef65e9..bbc4423 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6e72c5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6e72c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl
index 86f0e29..764f859 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_6e72c5() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.spvasm
index 1bd4de5..a456b50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6e72c5 "textureDimensions_6e72c5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_6e72c5 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.wgsl
index 4dc753b..9f8db9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6e72c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read>;
 
 fn textureDimensions_6e72c5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6e72c5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl
index 9fc2702..45b3548 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6f1b5d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
index 752fa32..7dbfd54 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6f1b5d() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6f1b5d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
index 752fa32..7dbfd54 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_6f1b5d() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_6f1b5d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.glsl
index dafd2df..43f1371 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_6f1b5d() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_6f1b5d() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.spvasm
index 58c6d7e..b8223aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_6f1b5d "textureDimensions_6f1b5d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.wgsl
index a2d73af..406920f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/6f1b5d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureDimensions_6f1b5d() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_6f1b5d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl
index 84696a9..046cd48 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_709357();
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.dxc.hlsl
index 5fa73e1..5c90d0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_709357() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_709357()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.fxc.hlsl
index 5fa73e1..5c90d0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_709357() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_709357()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl
index 706f8da..6feb3aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_709357() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.spvasm
index d8e7766..b6d8f02 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_709357 "textureDimensions_709357"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_709357 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.wgsl
index 25ac5cf..5affa04 100644
--- a/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/709357.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read>;
 
 fn textureDimensions_709357() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_709357();
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl
index f76a098..a88c943 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_70dd33();
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.dxc.hlsl
index a1784ce..41e01a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_70dd33() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_70dd33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.fxc.hlsl
index a1784ce..41e01a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_70dd33() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_70dd33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.glsl
index 3a94f4e..ec154e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_70dd33() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_70dd33() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.spvasm
index 9465d3c..bc02927 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_70dd33 "textureDimensions_70dd33"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_70dd33 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.wgsl
index 9716f35..89fd252 100644
--- a/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/70dd33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
 
 fn textureDimensions_70dd33() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_70dd33();
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl
index abebea7..4bc3613 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<bgra8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_715917();
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.dxc.hlsl
index a669af9..d8ba156 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_715917() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_715917()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.fxc.hlsl
index a669af9..d8ba156 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_715917() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_715917()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.glsl
index 910debb..b38f3aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_715917() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_715917() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.spvasm
index 49cba3d7..ab417ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_715917 "textureDimensions_715917"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_715917 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.wgsl
index d82dc31..8675f90 100644
--- a/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/715917.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureDimensions_715917() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_715917();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl
index 6f58938..eddc70d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7228de();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl
index e64e322..ac21e73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_7228de() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7228de()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl
index e64e322..ac21e73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_7228de() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7228de()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl
index 4f546da..67fa95f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_7228de() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.spvasm
index 7ec98b1..a2403dd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7228de "textureDimensions_7228de"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7228de = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.wgsl
index 5e8fba8..fc311e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7228de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, write>;
 
 fn textureDimensions_7228de() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7228de();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl
index 623ea3d..e668e06 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8snorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7327fa();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.dxc.hlsl
index 087ae97..b31fb95 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7327fa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7327fa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.fxc.hlsl
index 087ae97..b31fb95 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7327fa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7327fa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl
index 21b3f4f..91e5737 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_7327fa() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.spvasm
index 3b717e3..6b40eea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7327fa "textureDimensions_7327fa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7327fa = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.wgsl
index 58ad696..4a71892 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7327fa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read>;
 
 fn textureDimensions_7327fa() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7327fa();
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl
index f1e07e5..817180a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_740e7c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.dxc.hlsl
index 1981b9c..19197a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_740e7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_740e7c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.fxc.hlsl
index 1981b9c..19197a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_740e7c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_740e7c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.spvasm
index fc74d7c..c9f312d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_740e7c "textureDimensions_740e7c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_740e7c = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.wgsl
index a9a7160..058715b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/740e7c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
 
 fn textureDimensions_740e7c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_740e7c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl
index c1a7668..06b72e0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureDimensions(texture: texture_3d<i32>, level: i32) -> vec3<u32>
@@ -42,8 +45,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756031();
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl
index 56b75af..2a9c023 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_756031() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_756031()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl
index 56b75af..2a9c023 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_756031() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_756031()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.glsl
index a710afb..7ee7ed9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_756031() {
   int arg_1 = 1;
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_756031() {
   int arg_1 = 1;
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.spvasm
index 462af77..28a95ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_756031 "textureDimensions_756031"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v3uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v3uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.wgsl
index 4ce4431..56d9d22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756031.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureDimensions_756031() -> vec3<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756031();
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl
index 0cfeded..dd559cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756304();
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl
index f7304f7..bd2210c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_756304() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_756304()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl
index f7304f7..bd2210c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_756304() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_756304()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl
index f169d1d..a64687b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_756304() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.spvasm
index ac6825d..ae53be6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_756304 "textureDimensions_756304"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_756304 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.wgsl
index d3e29bd..487985c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/756304.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureDimensions_756304() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_756304();
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl
index 45ae89b..532f1b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_790e57();
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.dxc.hlsl
index 848961a..b567a0d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_790e57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_790e57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.fxc.hlsl
index 848961a..b567a0d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_790e57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_790e57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl
index 85527d9..d914cfd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_790e57() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.spvasm
index 8e9b904..01223f1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_790e57 "textureDimensions_790e57"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_790e57 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.wgsl
index 321022f..8db7753 100644
--- a/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/790e57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read>;
 
 fn textureDimensions_790e57() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_790e57();
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl
index 75a16f8..7744ec6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_795fbb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.dxc.hlsl
index f82ceb0..2fd7e0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_795fbb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_795fbb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.fxc.hlsl
index f82ceb0..2fd7e0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_795fbb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_795fbb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.glsl
index 6a29446..4fd11fb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_795fbb() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_795fbb() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.spvasm
index 0245a7a..a3f99c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_795fbb "textureDimensions_795fbb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_795fbb = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.wgsl
index 73694d3..dd4dafd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/795fbb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureDimensions_795fbb() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_795fbb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl
index e0e015b..d2a3c89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_797c30();
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.dxc.hlsl
index 58091cb..bca7d6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_797c30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_797c30()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.fxc.hlsl
index 58091cb..bca7d6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_797c30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_797c30()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl
index 25b159c..44829d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_797c30() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.spvasm
index 018e077..07e400a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_797c30 "textureDimensions_797c30"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_797c30 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.wgsl
index eadad37..8383531 100644
--- a/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/797c30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read>;
 
 fn textureDimensions_797c30() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_797c30();
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl
index 18ba20b..952972f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_79d168();
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl
index 6218ef3..a6726b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_79d168() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_79d168()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl
index 6218ef3..a6726b2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_79d168() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_79d168()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.glsl
index 8490343..72d3e96 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_79d168() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_79d168() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.spvasm
index aa7a5d9..112a29d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_79d168 "textureDimensions_79d168"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.wgsl
index 61dc19e..9bafcc4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/79d168.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureDimensions_79d168() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_79d168();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl
index e11bc60..fba8154 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureDimensions(texture: texture_3d<u32>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a3890();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
index e964059..1693f29 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_7a3890() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7a3890()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
index e964059..1693f29 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_7a3890() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7a3890()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.glsl
index acbd9b1..c4861dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_7a3890() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_7a3890() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.spvasm
index bed858b..a4e5425 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7a3890 "textureDimensions_7a3890"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_7a3890 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.wgsl
index f4c32b4..ce60ae2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a3890.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureDimensions_7a3890() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a3890();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl
index cc1886b..038af23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureDimensions(texture: texture_cube<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a9e30();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
index a87f3a6..803b9ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7a9e30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7a9e30()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
index a87f3a6..803b9ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7a9e30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7a9e30()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.glsl
index 3aaf678..6c989c0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_7a9e30() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_7a9e30() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.spvasm
index 67046a4..ec244a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7a9e30 "textureDimensions_7a9e30"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_7a9e30 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.wgsl
index b199663..ae9d368 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7a9e30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureDimensions_7a9e30() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7a9e30();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl
index cdb32f1..ea4c088 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c753b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.dxc.hlsl
index 1db987d..a8a4017 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7c753b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7c753b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.fxc.hlsl
index 1db987d..a8a4017 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7c753b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7c753b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl
index 8fb7c8a..af2df69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uint textureDimensions_7c753b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.spvasm
index fb7b95a..b8728c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7c753b "textureDimensions_7c753b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7c753b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.wgsl
index 50000e6..28bcef7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c753b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read>;
 
 fn textureDimensions_7c753b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c753b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl
index 24240e4..b4c073f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c7c64();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl
index dae5b6a..d2bbc73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_7c7c64() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7c7c64()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl
index dae5b6a..d2bbc73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_7c7c64() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7c7c64()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.spvasm
index 7efe268..c000769 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7c7c64 "textureDimensions_7c7c64"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_7c7c64 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.wgsl
index 8c06909..bc3f180 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7c7c64.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureDimensions_7c7c64() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7c7c64();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl
index a8902ab..3277696 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7d8439();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.dxc.hlsl
index c7cd0be..f7643e6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7d8439() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7d8439()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.fxc.hlsl
index c7cd0be..f7643e6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_7d8439() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_7d8439()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.spvasm
index e1bbd4a..216d1f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7d8439 "textureDimensions_7d8439"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_7d8439 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.wgsl
index 38bdab7..29fc9e5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7d8439.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read>;
 
 fn textureDimensions_7d8439() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7d8439();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl
index 459d96c..020bdae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7ea4b5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl
index 04014ae..1b2746a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_7ea4b5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7ea4b5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl
index 04014ae..1b2746a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_7ea4b5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_7ea4b5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.glsl
index 08d0831..032f589 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_7ea4b5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_7ea4b5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.spvasm
index 7fe614c3..5415c77 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7ea4b5 "textureDimensions_7ea4b5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_7ea4b5 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.wgsl
index 04a7f43..05ce5ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7ea4b5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
 
 fn textureDimensions_7ea4b5() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7ea4b5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl
index a59b12d..0abd2be 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7edb05();
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.dxc.hlsl
index a27563f..dd37e3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7edb05() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7edb05()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.fxc.hlsl
index a27563f..dd37e3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_7edb05() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_7edb05()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl
index 2d3247c..b5c3c06 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_7edb05() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.spvasm
index 2dd5090..ad38050 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_7edb05 "textureDimensions_7edb05"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_7edb05 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.wgsl
index 96cf95a..8afcfc0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/7edb05.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureDimensions_7edb05() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_7edb05();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl
index ba02d1e..26bf515 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<bgra8unorm, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8057cb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.dxc.hlsl
index e606ad9..5d7fcc7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_8057cb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8057cb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.fxc.hlsl
index e606ad9..5d7fcc7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_8057cb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8057cb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl
index 8bc5dd5..6ccf80d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_8057cb() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.spvasm
index 16682ca..fe04c76 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8057cb "textureDimensions_8057cb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_8057cb = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.wgsl
index 7c07936..ec711d9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8057cb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read>;
 
 fn textureDimensions_8057cb() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8057cb();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl
index 4d51a77..f8040dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<bgra8unorm, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8243a1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.dxc.hlsl
index e349c9d..5fabce0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8243a1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8243a1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.fxc.hlsl
index e349c9d..5fabce0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8243a1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8243a1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.glsl
index 9ddafb9..cb208ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_8243a1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_8243a1() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.spvasm
index 41fc4d3..a8ea290 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8243a1 "textureDimensions_8243a1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_8243a1 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.wgsl
index 5a38759..5074556 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8243a1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
 
 fn textureDimensions_8243a1() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8243a1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl
index 1fafbc6..aa3fb36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_835f90();
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.dxc.hlsl
index 5a243cd..88d960e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_835f90() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_835f90()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.fxc.hlsl
index 5a243cd..88d960e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_835f90() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_835f90()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.spvasm
index 79437fc..d3dcb19 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_835f90 "textureDimensions_835f90"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_835f90 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.wgsl
index 164dd3f..31e3e91 100644
--- a/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/835f90.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
 
 fn textureDimensions_835f90() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_835f90();
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl
index 9978dda..5584982 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_841ebe();
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.dxc.hlsl
index 624efaa..a9fc514 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_841ebe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_841ebe()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.fxc.hlsl
index 624efaa..a9fc514 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_841ebe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_841ebe()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl
index 3e87fb7..09096a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_841ebe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.spvasm
index 30d0021..3d8daf3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_841ebe "textureDimensions_841ebe"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_841ebe = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.wgsl
index a89146f..665a98e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/841ebe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read>;
 
 fn textureDimensions_841ebe() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_841ebe();
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl
index 2873057..782de59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<bgra8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_84f363();
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl
index 0b839e9..a090151 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_84f363() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_84f363()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl
index 0b839e9..a090151 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_84f363() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_84f363()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl
index b270078..1067642 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_84f363() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.spvasm
index a2d0524..162551a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_84f363 "textureDimensions_84f363"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_84f363 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.wgsl
index c932f7c..d1522a8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/84f363.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, write>;
 
 fn textureDimensions_84f363() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_84f363();
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl
index 1cc1a53..2efc6d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_867ead();
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl
index d7a8cb8..b9f0d9e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_867ead() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_867ead()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl
index d7a8cb8..b9f0d9e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_867ead() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_867ead()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl
index 78869c6..9af0559 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_867ead() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.spvasm
index 9d27ed8..b6ebea3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_867ead "textureDimensions_867ead"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_867ead = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.wgsl
index 6fe3c09..86017cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/867ead.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureDimensions_867ead() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_867ead();
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl
index 0e5386d..45bd2b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureDimensions(texture: texture_cube_array<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_879b73();
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl
index b8d3508..ae9bf55 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_879b73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_879b73()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl
index b8d3508..ae9bf55 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_879b73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_879b73()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.spvasm
index 2651b76..a8b5183 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_879b73 "textureDimensions_879b73"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_879b73 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.wgsl
index fbedacd..9d9c7eb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/879b73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureDimensions_879b73() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_879b73();
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl
index 5f260e6..b749c29 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_87b42d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.dxc.hlsl
index 6b56a36..b3411c8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_87b42d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_87b42d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.fxc.hlsl
index 6b56a36..b3411c8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_87b42d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_87b42d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl
index f5059fe..2f88fc8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec2 textureDimensions_87b42d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.spvasm
index a397073..1c6f86e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_87b42d "textureDimensions_87b42d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_87b42d = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.wgsl
index afb0532..7567cf0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/87b42d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureDimensions_87b42d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_87b42d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl
index f519406..366d4a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_881dd4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.dxc.hlsl
index 9f540f1..3dde341 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_881dd4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_881dd4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.fxc.hlsl
index 9f540f1..3dde341 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_881dd4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_881dd4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl
index f62bc9b..295309d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_881dd4() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.spvasm
index 0d7ab89..4632a8d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_881dd4 "textureDimensions_881dd4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_881dd4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.wgsl
index 0534b774..cd68987 100644
--- a/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/881dd4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureDimensions_881dd4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_881dd4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl
index 2f6342d..a6f8642 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a2b17();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl
index c7f2595..ef96012 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8a2b17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8a2b17()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl
index c7f2595..ef96012 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8a2b17() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8a2b17()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.glsl
index 9347193..e8f1d05 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8a2b17() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8a2b17() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.spvasm
index 19150f0..3e646a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8a2b17 "textureDimensions_8a2b17"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_8a2b17 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.wgsl
index 1dcf978..df35a9c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a2b17.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
 
 fn textureDimensions_8a2b17() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a2b17();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl
index 0daf7b4..dc84d6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a35f9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
index a8601a2..f9801a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8a35f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8a35f9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
index a8601a2..f9801a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8a35f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8a35f9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.spvasm
index c4a0ee2..55fb850 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8a35f9 "textureDimensions_8a35f9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8a35f9 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.wgsl
index 35760f9..fb27e53 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8a35f9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, write>;
 
 fn textureDimensions_8a35f9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8a35f9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl
index 8a7c254..441575d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r8unorm, read>) -> vec2<u32>
@@ -43,8 +46,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8af728();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.dxc.hlsl
index 4800352..094112d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8af728() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8af728()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.fxc.hlsl
index 4800352..094112d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8af728() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8af728()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.spvasm
index d4a0b51..5a4a62b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8af728 "textureDimensions_8af728"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_8af728 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.wgsl
index 7be68c7..5297dd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8af728.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureDimensions_8af728() -> vec2<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8af728();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl
index 2dbe6e6..b2aff5f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8b9906();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.dxc.hlsl
index 0ffbdd8..bb808c3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8b9906() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8b9906()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.fxc.hlsl
index 0ffbdd8..bb808c3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_8b9906() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_8b9906()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.glsl
index ed2ec4e..8517c95 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_8b9906() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_8b9906() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.spvasm
index e729f4b..d9ed48f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8b9906 "textureDimensions_8b9906"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_8b9906 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.wgsl
index b1b0112..b8d9a5a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8b9906.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
 
 fn textureDimensions_8b9906() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8b9906();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl
index c3e0642..6c45c2e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8snorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8bd369();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.dxc.hlsl
index 8c87873..d2d04bc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8bd369() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8bd369()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.fxc.hlsl
index 8c87873..d2d04bc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_8bd369() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8bd369()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.glsl
index 6f240cc..55b6334 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_8bd369() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_8bd369() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.spvasm
index 2c31319..43f3572 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8bd369 "textureDimensions_8bd369"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_8bd369 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.wgsl
index e4d6144..a40021b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8bd369.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureDimensions_8bd369() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8bd369();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl
index f522243..89e5ba9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e15f4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl
index c06c59f..b7310a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8e15f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8e15f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl
index c06c59f..b7310a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_8e15f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_8e15f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.spvasm
index 8f7d841..17a854f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8e15f4 "textureDimensions_8e15f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8e15f4 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.wgsl
index e4e678a..8f9508a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e15f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read>;
 
 fn textureDimensions_8e15f4() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e15f4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl
index bcbb636..2168e41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e5de6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl
index 181bebc..16bdd7a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_8e5de6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8e5de6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl
index 181bebc..16bdd7a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_8e5de6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8e5de6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl
index 2034799..4f6e7b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_8e5de6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.spvasm
index a9b5597..f023f00 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8e5de6 "textureDimensions_8e5de6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8e5de6 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.wgsl
index 572a2a0..686863b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8e5de6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read>;
 
 fn textureDimensions_8e5de6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8e5de6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl
index c690618..cb0f560 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8efd47();
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
index 5898703..c0e23aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8efd47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8efd47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
index 5898703..c0e23aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_8efd47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_8efd47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl
index 8564b03..dcaf10f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_8efd47() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.spvasm
index 1b3d1ca..ff10d8a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_8efd47 "textureDimensions_8efd47"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_8efd47 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.wgsl
index 4bc96cd..0ffcd83 100644
--- a/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/8efd47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, write>;
 
 fn textureDimensions_8efd47() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_8efd47();
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl
index 51f7d67..3e19d93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_902179();
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl
index 52baa84..cf97d7e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_902179() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_902179()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl
index 52baa84..cf97d7e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_902179() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_902179()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl
index 9d08d87..23a5475 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_902179() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.spvasm
index 4ab9c75..ffbd40c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_902179 "textureDimensions_902179"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_902179 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.wgsl
index 7764539..193ffe8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/902179.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, write>;
 
 fn textureDimensions_902179() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_902179();
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl
index 9e296b7..e652d64 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_904b0f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.dxc.hlsl
index e34af49..559533d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_904b0f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_904b0f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.fxc.hlsl
index e34af49..559533d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_904b0f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_904b0f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl
index c7f66b6..6734fd9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_904b0f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.spvasm
index 2452e68..1f733c1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_904b0f "textureDimensions_904b0f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_904b0f = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.wgsl
index 9643cba..4db9cfb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/904b0f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureDimensions_904b0f() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_904b0f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl
index 75acb83..65b2c36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_90dd74();
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
index d6bcf75..861250b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_90dd74() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_90dd74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
index d6bcf75..861250b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_90dd74() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_90dd74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl
index 5b04b8b..4b51b99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_90dd74() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.spvasm
index 319ba2f..b714a0c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_90dd74 "textureDimensions_90dd74"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_90dd74 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.wgsl
index 4cf5239..b10ff3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/90dd74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureDimensions_90dd74() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_90dd74();
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl
index 5914336..ae1d8a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32sint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_91e3b4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl
index 5da5db2..c816b8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_91e3b4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_91e3b4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl
index 5da5db2..c816b8e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_91e3b4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_91e3b4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.spvasm
index 7188500..5e44db3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_91e3b4 "textureDimensions_91e3b4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_91e3b4 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.wgsl
index 5cb5d36..522ac4d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/91e3b4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
 
 fn textureDimensions_91e3b4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_91e3b4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl
index 6845683..5c99457 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureDimensions(texture: texture_1d<u32>, level: i32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_920006();
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl
index 070e8e9..ef2af10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_920006() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_920006()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl
index 070e8e9..ef2af10 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_920006() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_920006()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.glsl
index 8f439fd..a9f4fe9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_920006() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_920006() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.spvasm
index f1fa786..ff5f78f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_920006 "textureDimensions_920006"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_uint Function %9
                OpStore %arg_1 %int_1
-         %28 = OpLoad %15 %arg_0
+         %28 = OpLoad %18 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageQuerySizeLod %uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.wgsl
index 34cfe46..bec677f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/920006.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureDimensions_920006() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_920006();
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl
index 0c250a0..675a4cd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_92552e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl
index afdeacc..0617d8f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_92552e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_92552e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl
index afdeacc..0617d8f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_92552e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_92552e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl
index e66dfe4..4b57488 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_92552e() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.spvasm
index 598bea9..dcd8ffa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_92552e "textureDimensions_92552e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_92552e = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.wgsl
index 7510eea..bb123e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/92552e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, write>;
 
 fn textureDimensions_92552e() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_92552e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl
index d42a92d..baebb12 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9573f3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
index b5ef49e..778760a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_9573f3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9573f3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
index b5ef49e..778760a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_9573f3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9573f3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.spvasm
index 9cddcf0..0ed4198 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9573f3 "textureDimensions_9573f3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_9573f3 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.wgsl
index d0263ed..6b614d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9573f3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, write>;
 
 fn textureDimensions_9573f3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9573f3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl
index cacf390..5b1386f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureDimensions(texture: texture_1d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_965645();
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl
index 3ba9c36..412c5df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_965645() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_965645()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl
index 3ba9c36..412c5df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_965645() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_965645()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.glsl
index 11a6898..93ed2f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_965645() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_965645() {
   uint res = uvec2(textureSize(arg_0_1, 0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.spvasm
index 5ddf778..4f6fe67 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_965645 "textureDimensions_965645"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_965645 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySizeLod %uint %23 %int_0
                OpStore %res %22
          %28 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.wgsl
index 794984c..e0af564 100644
--- a/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/965645.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureDimensions_965645() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_965645();
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl
index f21c80a..5e2ff2c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureDimensions(texture: texture_cube_array<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_98b2d3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
index 8d5c755..ed151ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_98b2d3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_98b2d3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
index 8d5c755..ed151ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_98b2d3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_98b2d3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.spvasm
index 20a27ef..b04e77b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_98b2d3 "textureDimensions_98b2d3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -79,7 +79,7 @@
 %textureDimensions_98b2d3 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySizeLod %v3uint %27 %int_0
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.wgsl
index 80485dd..d9e7554 100644
--- a/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/98b2d3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureDimensions_98b2d3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_98b2d3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl
index b845e90..d4872f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureDimensions(texture: texture_depth_2d, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_991ea9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
index 46751e0..da28ce4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_991ea9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_991ea9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
index 46751e0..da28ce4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint2 textureDimensions_991ea9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_991ea9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.glsl
index 196976a..f0a5caa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_991ea9() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uvec2 textureDimensions_991ea9() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.spvasm
index 93d83a9..4be1e37 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_991ea9 "textureDimensions_991ea9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v2uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.wgsl
index 12f4c94..946c765 100644
--- a/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/991ea9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureDimensions_991ea9() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_991ea9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl
index 40f0380..e925a8a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9944d5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.dxc.hlsl
index d2610a3..904c64f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_9944d5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9944d5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.fxc.hlsl
index d2610a3..904c64f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_9944d5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9944d5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl
index 87daa8b..237953a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uint textureDimensions_9944d5() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.spvasm
index 6587eea..f9fe13d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9944d5 "textureDimensions_9944d5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_9944d5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.wgsl
index c4d5366..3532ef8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9944d5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
 
 fn textureDimensions_9944d5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9944d5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl
index 2bbd80a..883761e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<bgra8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b10a0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl
index 42919bb..00fd595 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b10a0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b10a0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl
index 42919bb..00fd595 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b10a0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b10a0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl
index 1a7bb91..dfd9ef6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_9b10a0() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.spvasm
index 72421c8..e06c34c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9b10a0 "textureDimensions_9b10a0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_9b10a0 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.wgsl
index d27aa4f..c7d468d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b10a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureDimensions_9b10a0() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b10a0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl
index 118cda5..fd09965 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureDimensions(texture: texture_cube<f32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b223b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
index aef0f13..752f3c8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b223b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b223b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
index aef0f13..752f3c8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9b223b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9b223b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.glsl
index 8d3ff5f..d9b36d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_9b223b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_9b223b() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.spvasm
index 35239d7..a1e5cde 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9b223b "textureDimensions_9b223b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_9b223b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.wgsl
index accf6a3..a439a97 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9b223b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureDimensions_9b223b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9b223b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl
index 7b49013..058833a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureDimensions(texture: texture_cube<u32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9baf27();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
index 4812322..915c9a8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9baf27() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9baf27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
index 4812322..915c9a8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9baf27() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9baf27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.glsl
index e410d7b..45c61e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9baf27() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9baf27() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.spvasm
index ea410ab..0be35e5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9baf27 "textureDimensions_9baf27"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v2uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.wgsl
index 1d1adf2..de3dfab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9baf27.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureDimensions_9baf27() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9baf27();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl
index 991fdd1..72dbec9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureDimensions(texture: texture_1d<u32>, level: u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9c7a00();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
index f138b31..e77f7ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9c7a00() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9c7a00()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
index f138b31..e77f7ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9c7a00() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9c7a00()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.glsl
index 2f79e19..02b3eec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_9c7a00() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uint textureDimensions_9c7a00() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.spvasm
index 3bbefba..53d4717 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9c7a00 "textureDimensions_9c7a00"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %9
         %res = OpVariable %_ptr_Function_uint Function %9
                OpStore %arg_1 %uint_1
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %27 = OpLoad %uint %arg_1
          %25 = OpImageQuerySizeLod %uint %26 %27
                OpStore %res %25
diff --git a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.wgsl
index 60f4b47..5341e83 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9c7a00.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureDimensions_9c7a00() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9c7a00();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl
index 48b06ec..1eea036 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureDimensions(texture: texture_cube<u32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd4ca();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
index 53a29e4..be22f2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9cd4ca() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9cd4ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
index 53a29e4..be22f2d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9cd4ca() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9cd4ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.glsl
index b972031..d2ee76d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9cd4ca() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_0_1;
 uvec2 textureDimensions_9cd4ca() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.spvasm
index e462491..6ff7585 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9cd4ca "textureDimensions_9cd4ca"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.wgsl
index f9ea63e..408a3ac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd4ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureDimensions_9cd4ca() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd4ca();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl
index 12257f0..b7bc4f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd8ad();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
index 8687f94..c176f9c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_9cd8ad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_9cd8ad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
index 8687f94..c176f9c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_9cd8ad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_9cd8ad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.spvasm
index 2feb3ab..a5bbc9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9cd8ad "textureDimensions_9cd8ad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_9cd8ad = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.wgsl
index e5a7e29..2503f36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9cd8ad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, write>;
 
 fn textureDimensions_9cd8ad() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9cd8ad();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl
index 1ef50b0..e03eab1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d0bac();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl
index 1b42e37..01486b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9d0bac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9d0bac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl
index 1b42e37..01486b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9d0bac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9d0bac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl
index c00d60c..b373375 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_9d0bac() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.spvasm
index d8b1a89..cd67eaa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9d0bac "textureDimensions_9d0bac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_9d0bac = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.wgsl
index f796866..fc609d8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d0bac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read>;
 
 fn textureDimensions_9d0bac() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d0bac();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl
index 4c6f85a..003d0bd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8snorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d68b8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl
index e7712c2..c454b3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9d68b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9d68b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl
index e7712c2..c454b3b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_9d68b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_9d68b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl
index f669f7a..b81d88a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 uint textureDimensions_9d68b8() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.spvasm
index 902cee6..b48b6f0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9d68b8 "textureDimensions_9d68b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_9d68b8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.wgsl
index 9119b63..25337a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9d68b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read>;
 
 fn textureDimensions_9d68b8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9d68b8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl
index 3d91f99..b834457 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9dc27a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl
index 74ae3fc..81f3c2b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9dc27a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9dc27a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl
index 74ae3fc..81f3c2b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9dc27a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9dc27a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.spvasm
index 42e8f28..595da62 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9dc27a "textureDimensions_9dc27a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_9dc27a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.wgsl
index d6006e7..db83f24 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9dc27a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureDimensions_9dc27a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9dc27a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl
index bd6dace..eaab43b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureDimensions(texture: texture_2d_array<u32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9e0794();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
index 8a34884..e785cc2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9e0794() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9e0794()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
index 8a34884..e785cc2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9e0794() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9e0794()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.glsl
index 82bab0d..974db9d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_9e0794() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec2 textureDimensions_9e0794() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.spvasm
index b14e70b..ea21d27 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9e0794 "textureDimensions_9e0794"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.wgsl
index 1d4009f..0cc249a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9e0794.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureDimensions_9e0794() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9e0794();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl
index ddf22a9..80ef7ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureDimensions(texture: texture_depth_cube_array) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9fcc3b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
index d788dcc..a96ac7d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9fcc3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9fcc3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
index d788dcc..a96ac7d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_9fcc3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_9fcc3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.spvasm
index 8117b86..2431e38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_9fcc3b "textureDimensions_9fcc3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_9fcc3b = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.wgsl
index 995d390..489b0b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/9fcc3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureDimensions_9fcc3b() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_9fcc3b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl
index 81f9eae..9340273 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32uint, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a105a5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.dxc.hlsl
index 8a52cb6..d2cc25a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a105a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a105a5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.fxc.hlsl
index 8a52cb6..d2cc25a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a105a5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a105a5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.glsl
index 68a1922..a7ede47 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_a105a5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_a105a5() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.spvasm
index 7266160..395100f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a105a5 "textureDimensions_a105a5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_a105a5 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.wgsl
index eea6b65..2e56b76 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a105a5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
 
 fn textureDimensions_a105a5() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a105a5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl
index 376e0f2..8a8aed8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a14386();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.dxc.hlsl
index e74b745..5ab9a18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_a14386() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a14386()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.fxc.hlsl
index e74b745..5ab9a18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_a14386() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a14386()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.glsl
index 37943e0..f3dcd82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_a14386() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_a14386() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.spvasm
index 5101658..4519b86 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a14386 "textureDimensions_a14386"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_a14386 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.wgsl
index c502580..ec7daad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a14386.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
 
 fn textureDimensions_a14386() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a14386();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl
index a6e9c63..2285a61 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureDimensions(texture: texture_cube_array<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a1598a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
index ce8d913..ff0ec2a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a1598a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a1598a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
index ce8d913..ff0ec2a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a1598a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a1598a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.spvasm
index fbd517c..4f00d32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a1598a "textureDimensions_a1598a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -79,7 +79,7 @@
 %textureDimensions_a1598a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.wgsl
index 6019484..1bcbcf28 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a1598a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureDimensions_a1598a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a1598a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl
index 114b7e5..8dc1e5f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r8unorm, write>) -> vec3<u32>
@@ -43,8 +46,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a20ba2();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl
index 056cc58..cd16e45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a20ba2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a20ba2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl
index 056cc58..cd16e45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_a20ba2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a20ba2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.spvasm
index 7226ee5..6eac00f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a20ba2 "textureDimensions_a20ba2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_a20ba2 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.wgsl
index 3385fd5..cacb199 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a20ba2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, write>;
 
 fn textureDimensions_a20ba2() -> vec3<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a20ba2();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl
index 416084e..b544bff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8unorm, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a25d9b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl
index 5b28495..6f31d36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a25d9b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a25d9b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl
index 5b28495..6f31d36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a25d9b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a25d9b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl
index a359a59..31acaf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a25d9b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.spvasm
index 3f76b58..63a631a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a25d9b "textureDimensions_a25d9b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_a25d9b = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.wgsl
index 54bf8b4..bfe4957 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a25d9b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read>;
 
 fn textureDimensions_a25d9b() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a25d9b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl
index f3d7a8a..377fe1e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureDimensions(texture: texture_cube<i32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a2ba5e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
index 952a6c8..5960b2b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a2ba5e() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a2ba5e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
index 952a6c8..5960b2b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a2ba5e() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a2ba5e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.glsl
index 55c0be5..ac26fcf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_a2ba5e() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_a2ba5e() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.spvasm
index 7b828b3..3fcd1c0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a2ba5e "textureDimensions_a2ba5e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.wgsl
index a6e2876..09db9a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a2ba5e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureDimensions_a2ba5e() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a2ba5e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl
index 9ddb140..13f0371 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a3ea91();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl
index f536ed2..f61153f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a3ea91() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a3ea91()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl
index f536ed2..f61153f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_a3ea91() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_a3ea91()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl
index 7ac7d69..3f6f7a4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_a3ea91() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.spvasm
index 07ca8ad..c7673a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a3ea91 "textureDimensions_a3ea91"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_a3ea91 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.wgsl
index 39ead80..783154a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a3ea91.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read>;
 
 fn textureDimensions_a3ea91() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a3ea91();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl
index 22798dc..8aefdd3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureDimensions(texture: texture_2d<i32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a48049();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl
index 6e1a8cb..db92613 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a48049() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a48049()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl
index 6e1a8cb..db92613 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a48049() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a48049()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.glsl
index 92aca12..d0b06e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_a48049() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_a48049() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.spvasm
index 62f8de5..18c77f0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a48049 "textureDimensions_a48049"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v2uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.wgsl
index 588cab6..990eff3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a48049.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureDimensions_a48049() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a48049();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl
index 236ea65..225fa03 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureDimensions(texture: texture_depth_2d_array) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a4cd56();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
index 4d17222..b94f26f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a4cd56() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a4cd56()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
index 4d17222..b94f26f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a4cd56() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a4cd56()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.glsl
index 1610652..5acd10d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_a4cd56() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_a4cd56() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.spvasm
index 3d9d5ff..d295828 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a4cd56 "textureDimensions_a4cd56"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureDimensions_a4cd56 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.wgsl
index d878e53..d8d7d92 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a4cd56.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureDimensions_a4cd56() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a4cd56();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl
index c54d957..00e4127 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a65776();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.dxc.hlsl
index 49a3575..dbfe52c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a65776() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a65776()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.fxc.hlsl
index 49a3575..dbfe52c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_a65776() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_a65776()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl
index 47ed1ba..2b7dd5e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_a65776() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.spvasm
index 792ac59..3c1d303 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a65776 "textureDimensions_a65776"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_a65776 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.wgsl
index 685ee79..b3a90c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a65776.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read>;
 
 fn textureDimensions_a65776() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a65776();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl
index 4fb4691..771197f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8snorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a7ae4c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl
index 9908b1a..52e33bb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_a7ae4c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_a7ae4c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl
index 9908b1a..52e33bb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_a7ae4c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_a7ae4c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.glsl
index 59e3915..613bbe9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_a7ae4c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_a7ae4c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.spvasm
index d8f96aa..ac949ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_a7ae4c "textureDimensions_a7ae4c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_a7ae4c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.wgsl
index cc643af..3178929 100644
--- a/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/a7ae4c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
 
 fn textureDimensions_a7ae4c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_a7ae4c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl
index 034b243..1fe16c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aa4353();
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
index 5b38798..fa08e58 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_aa4353() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_aa4353()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
index 5b38798..fa08e58 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_aa4353() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_aa4353()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl
index 7ab6c18..449bd78 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_aa4353() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.spvasm
index 7a79b78..5907428 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_aa4353 "textureDimensions_aa4353"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_aa4353 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.wgsl
index c075a28..628846b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aa4353.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, write>;
 
 fn textureDimensions_aa4353() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aa4353();
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl
index 999377c..ad332a1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureDimensions(texture: texture_1d<f32>, level: u32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aac604();
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl
index 60d5dd1..110eb7b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_aac604() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_aac604()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl
index 60d5dd1..110eb7b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_aac604() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_aac604()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.glsl
index f018dfe..a372093 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_aac604() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_aac604() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.spvasm
index 69ebdf5..a02f12e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_aac604 "textureDimensions_aac604"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %9
         %res = OpVariable %_ptr_Function_uint Function %9
                OpStore %arg_1 %uint_1
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %27 = OpLoad %uint %arg_1
          %25 = OpImageQuerySizeLod %uint %26 %27
                OpStore %res %25
diff --git a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.wgsl
index 9b8456e..b35233a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/aac604.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureDimensions_aac604() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_aac604();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl
index 29d5337..8aaa26d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ad7d3b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
index 45d54fe..733242e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ad7d3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ad7d3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
index 45d54fe..733242e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ad7d3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ad7d3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl
index 6efb560..ce8597f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ad7d3b() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.spvasm
index 622246f..6e22af0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ad7d3b "textureDimensions_ad7d3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_ad7d3b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.wgsl
index 7bf9f0a..8783fd9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ad7d3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, write>;
 
 fn textureDimensions_ad7d3b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ad7d3b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl
index 9382189..24d55a7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae4595();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.dxc.hlsl
index ffa363f..de96d59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ae4595() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ae4595()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.fxc.hlsl
index ffa363f..de96d59 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ae4595() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ae4595()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.spvasm
index 9b707a7..02fd501 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ae4595 "textureDimensions_ae4595"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_ae4595 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.wgsl
index 19499a1..cd2b759 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae4595.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
 
 fn textureDimensions_ae4595() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae4595();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl
index 7328074..7d3c643 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae75a7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl
index d63ae7e..3ac2867 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ae75a7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ae75a7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl
index d63ae7e..3ac2867 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ae75a7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ae75a7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.glsl
index 0dd2b10..621540c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ae75a7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_ae75a7() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.spvasm
index 2fe304e..61b0a0f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ae75a7 "textureDimensions_ae75a7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_ae75a7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.wgsl
index e3b4e71..1b86c06 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ae75a7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
 
 fn textureDimensions_ae75a7() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ae75a7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl
index 7eae86e..df1adf1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_af46ab();
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
index 8a79cad..a7eefe5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_af46ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_af46ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
index 8a79cad..a7eefe5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_af46ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_af46ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.spvasm
index d88b6377..0d2e02c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_af46ab "textureDimensions_af46ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -79,7 +79,7 @@
 %textureDimensions_af46ab = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.wgsl
index fba624d..9b70a32 100644
--- a/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/af46ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureDimensions_af46ab() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_af46ab();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl
index 6465c72..279b1b1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b16352();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.dxc.hlsl
index 30d3948..17594e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b16352() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b16352()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.fxc.hlsl
index 30d3948..17594e3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b16352() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b16352()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.glsl
index 21a6161..8d429e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b16352() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b16352() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.spvasm
index e1e1ce7..784e262 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b16352 "textureDimensions_b16352"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b16352 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.wgsl
index ae60012..d53921e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b16352.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
 
 fn textureDimensions_b16352() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b16352();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl
index 8158689..a9a9cd8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b284b8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.dxc.hlsl
index f5f119b..204b5d5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b284b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b284b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.fxc.hlsl
index f5f119b..204b5d5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b284b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b284b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.glsl
index a50f60c..07687c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b284b8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_b284b8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.spvasm
index 1ff9f0c..60f7fda 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b284b8 "textureDimensions_b284b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b284b8 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.wgsl
index 03e360d..9dfe9f7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b284b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
 
 fn textureDimensions_b284b8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b284b8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl
index 6278bb1..12a307d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureDimensions(texture: texture_cube_array<f32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b3ab5e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
index c056a7d..b34124c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b3ab5e() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b3ab5e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
index c056a7d..b34124c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b3ab5e() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b3ab5e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.spvasm
index 77a21f1..5f71116 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b3ab5e "textureDimensions_b3ab5e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.wgsl
index a9539ef..e367604 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b3ab5e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureDimensions_b3ab5e() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b3ab5e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl
index 6e15d1c..d3f93d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureDimensions(texture: texture_1d<i32>, level: i32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b46d97();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
index 93faa77..a0f616d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b46d97() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b46d97()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
index 93faa77..a0f616d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b46d97() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b46d97()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.glsl
index 6c599f8..7e58d1f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_b46d97() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uint textureDimensions_b46d97() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.spvasm
index d726b80..5b1ae8f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b46d97 "textureDimensions_b46d97"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_uint Function %9
                OpStore %arg_1 %int_1
-         %28 = OpLoad %15 %arg_0
+         %28 = OpLoad %18 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageQuerySizeLod %uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.wgsl
index 0c06896..fedca5c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b46d97.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureDimensions_b46d97() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b46d97();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl
index d1a2b98..3373e42 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b51345();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl
index 4f888a6..79815dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_b51345() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b51345()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl
index 4f888a6..79815dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_b51345() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b51345()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.spvasm
index e4e48d4..55789c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b51345 "textureDimensions_b51345"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_b51345 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.wgsl
index a735f3d..94c14d5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b51345.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, write>;
 
 fn textureDimensions_b51345() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b51345();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl
index 16ab593..9054789 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b56112();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.dxc.hlsl
index a5209b9..8d3d67c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b56112() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b56112()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.fxc.hlsl
index a5209b9..8d3d67c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_b56112() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b56112()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl
index f7e084d..055d15c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_b56112() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.spvasm
index af31023..6524e82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b56112 "textureDimensions_b56112"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b56112 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.wgsl
index 8f8ec3d..4262ff7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b56112.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read>;
 
 fn textureDimensions_b56112() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b56112();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl
index b70f0bc..ddecc1a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5ba03();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl
index 55f85a3..1900231 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b5ba03() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b5ba03()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl
index 55f85a3..1900231 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b5ba03() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b5ba03()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl
index c6959a2..30291ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 uint textureDimensions_b5ba03() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.spvasm
index 6ba9b16..bf4a6d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b5ba03 "textureDimensions_b5ba03"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b5ba03 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.wgsl
index 212f1fe..fc7c95c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5ba03.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read>;
 
 fn textureDimensions_b5ba03() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5ba03();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl
index 018a921..3f3168c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5d68e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl
index 90a390f..2fc112e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b5d68e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b5d68e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl
index 90a390f..2fc112e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b5d68e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b5d68e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.glsl
index d13e7b5..9302239 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_b5d68e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_b5d68e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.spvasm
index 1f5aa8a..44a042c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b5d68e "textureDimensions_b5d68e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_b5d68e = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.wgsl
index ca10716..fe0dc9f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b5d68e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureDimensions_b5d68e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b5d68e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl
index 720bc99..6734234 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b6bbf4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl
index 4864daf..fa789dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_b6bbf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_b6bbf4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl
index 4864daf..fa789dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_b6bbf4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_b6bbf4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl
index 2ccf33a..7ed86ad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec3 textureDimensions_b6bbf4() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.spvasm
index 402ab99..6a6fd14 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b6bbf4 "textureDimensions_b6bbf4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_b6bbf4 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.wgsl
index 1dedd3f..848d197 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b6bbf4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read>;
 
 fn textureDimensions_b6bbf4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b6bbf4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl
index 22fb142..755b846 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<r32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b8287f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.dxc.hlsl
index 7ed1371..7619e73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b8287f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b8287f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.fxc.hlsl
index 7ed1371..7619e73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_b8287f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_b8287f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl
index ddbf20e..24e9a2a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec2 textureDimensions_b8287f() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.spvasm
index 58aa65f..1b5dc73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b8287f "textureDimensions_b8287f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_b8287f = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.wgsl
index 984907c..d155b23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b8287f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureDimensions_b8287f() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b8287f();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl
index 5ea02b2..5b15bbf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b9e7ef();
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl
index 1637a11..3fad725 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b9e7ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b9e7ef()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl
index 1637a11..3fad725 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_b9e7ef() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_b9e7ef()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl
index e7c3ada..42ef8e1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uint textureDimensions_b9e7ef() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.spvasm
index 824f653..83a659f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_b9e7ef "textureDimensions_b9e7ef"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_b9e7ef = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.wgsl
index ddaa760..0d54252 100644
--- a/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/b9e7ef.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read>;
 
 fn textureDimensions_b9e7ef() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_b9e7ef();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl
index 2ee7392..2dceef9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureDimensions(texture: texture_3d<f32>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bb95d9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
index 8fdb963..02489ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bb95d9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bb95d9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
index 8fdb963..02489ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bb95d9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bb95d9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.glsl
index 54d4730..3c60c39 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_bb95d9() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 uvec3 textureDimensions_bb95d9() {
   uvec3 res = uvec3(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.spvasm
index 385cdcd..83a9624 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bb95d9 "textureDimensions_bb95d9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_bb95d9 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.wgsl
index e685c44..09ca1b5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bb95d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureDimensions_bb95d9() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bb95d9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl
index 4febcfa..fe8089d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bbe285();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
index e982eb5..0a9d467 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bbe285() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bbe285()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
index e982eb5..0a9d467 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bbe285() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bbe285()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl
index 923608d..c1c5c74 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_bbe285() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.spvasm
index 7ae7c4a..457a547 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bbe285 "textureDimensions_bbe285"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_bbe285 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.wgsl
index 7a91c6a..ba0dfb0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bbe285.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureDimensions_bbe285() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bbe285();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl
index 53de9dc..892c5ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bc96f6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl
index 6fba9b1..d7d4062 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bc96f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bc96f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl
index 6fba9b1..d7d4062 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_bc96f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bc96f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.glsl
index f489171..944898b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_bc96f6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_bc96f6() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.spvasm
index be7339f..b923f47 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bc96f6 "textureDimensions_bc96f6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_bc96f6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.wgsl
index fa6f32f..877ef8a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bc96f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureDimensions_bc96f6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bc96f6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl
index 9fcf659..39b5513 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureDimensions(texture: texture_depth_cube_array, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bd94c8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
index 97f6eaa..61dc07e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_bd94c8() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bd94c8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
index 97f6eaa..61dc07e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_bd94c8() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_bd94c8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.spvasm
index 58005d2..4769ef0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bd94c8 "textureDimensions_bd94c8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %30 %31
          %27 = OpVectorShuffle %v2uint %28 %28 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.wgsl
index 2f17808..6c66329 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bd94c8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureDimensions_bd94c8() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bd94c8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl
index df2f060..0bfe554 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32float, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bec716();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.dxc.hlsl
index 8a55bbc..2979b41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bec716() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bec716()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.fxc.hlsl
index 8a55bbc..2979b41 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bec716() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bec716()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl
index ae15a5a..878cfab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bec716() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.spvasm
index 751a9f1..294f9ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bec716 "textureDimensions_bec716"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_bec716 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.wgsl
index e4876b6..af67d36 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bec716.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read>;
 
 fn textureDimensions_bec716() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bec716();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl
index 326d50d..cd71a08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8snorm, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bf9170();
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.dxc.hlsl
index 70a9f94..94e3408 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bf9170() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bf9170()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.fxc.hlsl
index 70a9f94..94e3408 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_bf9170() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_bf9170()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl
index b71400b..35a4297 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 uvec3 textureDimensions_bf9170() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.spvasm
index 6c2f73b..0e458c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_bf9170 "textureDimensions_bf9170"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_bf9170 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.wgsl
index f4f68ac..714d81f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/bf9170.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read>;
 
 fn textureDimensions_bf9170() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_bf9170();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl
index 6caea5a..99181d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1189e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.dxc.hlsl
index 0c0d8cf..60ef848 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c1189e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1189e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.fxc.hlsl
index 0c0d8cf..60ef848 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c1189e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1189e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl
index b383ee9..40f20bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_c1189e() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.spvasm
index 82a91e6..94b4346 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c1189e "textureDimensions_c1189e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_c1189e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.wgsl
index 75947d5..4cf33ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1189e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureDimensions_c1189e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1189e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl
index 81f8509..4c489a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1dbf6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
index 4a3f8da..a572340 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c1dbf6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1dbf6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
index 4a3f8da..a572340 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c1dbf6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c1dbf6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl
index da8ef19..5bd8cd7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_c1dbf6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.spvasm
index b805010..546c63d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c1dbf6 "textureDimensions_c1dbf6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c1dbf6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.wgsl
index a4d8eb8..6094740 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c1dbf6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, write>;
 
 fn textureDimensions_c1dbf6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c1dbf6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl
index 1a04080..0e86254 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c27466();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.dxc.hlsl
index d70ce55..39a1ea3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c27466() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c27466()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.fxc.hlsl
index d70ce55..39a1ea3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c27466() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c27466()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.glsl
index 6e4bd34..311deac 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_c27466() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_c27466() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.spvasm
index e931f68..9248e91 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c27466 "textureDimensions_c27466"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c27466 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.wgsl
index 4835acf..6f66ad8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c27466.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
 
 fn textureDimensions_c27466() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c27466();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl
index e9beab1..a80c70f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c2cdd3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
index 9372bdb..3bc90cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c2cdd3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c2cdd3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
index 9372bdb..3bc90cb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c2cdd3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c2cdd3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.glsl
index a0387eb..4104eaf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_c2cdd3() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 uvec2 textureDimensions_c2cdd3() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.spvasm
index 1fbe702..94b1aa4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c2cdd3 "textureDimensions_c2cdd3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_c2cdd3 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.wgsl
index 5c7b343..0c37cb1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c2cdd3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureDimensions_c2cdd3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c2cdd3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl
index 04dde37..2c676df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c44fc1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
index bc3439e..95f2fce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c44fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c44fc1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
index bc3439e..95f2fce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c44fc1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c44fc1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl
index 656bd2b..e4318e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_c44fc1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.spvasm
index ff23cb5..36e1fc4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c44fc1 "textureDimensions_c44fc1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_c44fc1 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.wgsl
index 055252f..28524a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c44fc1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureDimensions_c44fc1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c44fc1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl
index c9f7ecc..a8a9cdc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureDimensions(texture: texture_depth_cube) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c5a36e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
index 93c587d..1e1112f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c5a36e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c5a36e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
index 93c587d..1e1112f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_c5a36e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c5a36e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.glsl
index a0cdf58..e622e6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_c5a36e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_c5a36e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.spvasm
index 61e8300..251f6e5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c5a36e "textureDimensions_c5a36e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureDimensions_c5a36e = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySizeLod %v2uint %24 %int_0
                OpStore %res %23
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.wgsl
index 0818250..4ba8f6e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c5a36e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureDimensions_c5a36e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c5a36e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl
index 4746cd2..a39d217 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b44c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl
index 79c0f65..e010f6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c6b44c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c6b44c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl
index 79c0f65..e010f6b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c6b44c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c6b44c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl
index 49668e3..0fc0164 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 uvec2 textureDimensions_c6b44c() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.spvasm
index 45916da..0a3c511 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c6b44c "textureDimensions_c6b44c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c6b44c = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.wgsl
index 3b65ffa..64f9fdd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b44c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
 
 fn textureDimensions_c6b44c() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b44c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl
index b2d0a94..09253f6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r8unorm, read_write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b985();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.dxc.hlsl
index c45d87c..17e664f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c6b985() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c6b985()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.fxc.hlsl
index c45d87c..17e664f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c6b985() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c6b985()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.spvasm
index ce38051..f397148 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c6b985 "textureDimensions_c6b985"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c6b985 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.wgsl
index c6d84c7..31f6782 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c6b985.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read_write>;
 
 fn textureDimensions_c6b985() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c6b985();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl
index 26f1b394..f61966a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c7ea63();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl
index 094ac27..7582ec0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c7ea63() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c7ea63()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl
index 094ac27..7582ec0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_c7ea63() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_c7ea63()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.spvasm
index d8fd854..2cd93d0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c7ea63 "textureDimensions_c7ea63"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c7ea63 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.wgsl
index 859c201..40af09f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c7ea63.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
 
 fn textureDimensions_c7ea63() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c7ea63();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl
index c591f34..cc69ec3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c82420();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.dxc.hlsl
index d489640..62f5c66 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c82420() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c82420()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.fxc.hlsl
index d489640..62f5c66 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_c82420() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_c82420()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.spvasm
index fa17a6a..0fa923f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c82420 "textureDimensions_c82420"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_c82420 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.wgsl
index 04ac8b7..59d1ffa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c82420.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
 
 fn textureDimensions_c82420() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c82420();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl
index 412dde6..3a94c08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureDimensions(texture: texture_3d<i32>, level: u32) -> vec3<u32>
@@ -42,8 +45,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c871f3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
index 31999c6..b7a2cf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_c871f3() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_c871f3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
index 31999c6..b7a2cf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_c871f3() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_c871f3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.glsl
index b419bb2..51e7b7b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_c871f3() {
   uint arg_1 = 1u;
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 uvec3 textureDimensions_c871f3() {
   uint arg_1 = 1u;
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.spvasm
index b482d29..a7b099f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_c871f3 "textureDimensions_c871f3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v3uint Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.wgsl
index f072b28..0b6e682 100644
--- a/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/c871f3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureDimensions_c871f3() -> vec3<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_c871f3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl
index f8e58df..a6a77fd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ca10cc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl
index 9178c32..4d0fa48 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ca10cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ca10cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl
index 9178c32..4d0fa48 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ca10cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ca10cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.glsl
index 2e8d68d..bf2c1ec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_ca10cc() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uvec2 textureDimensions_ca10cc() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.spvasm
index f8655a6..5aacfda 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ca10cc "textureDimensions_ca10cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -76,7 +76,7 @@
 %textureDimensions_ca10cc = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.wgsl
index 3b93855..33cf4d2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ca10cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureDimensions_ca10cc() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ca10cc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl
index 85ea5e6..785aacf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32sint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cad3b7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
index d2c5a02..70863db 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_cad3b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cad3b7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
index d2c5a02..70863db 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_cad3b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cad3b7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl
index 60bad3d..baec589 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2D arg_0;
 uvec2 textureDimensions_cad3b7() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.spvasm
index e5a4b0a..f409e50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cad3b7 "textureDimensions_cad3b7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_cad3b7 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.wgsl
index 53388d5..144b4ee 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cad3b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, write>;
 
 fn textureDimensions_cad3b7() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cad3b7();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl
index 24aa0e4..86550e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8snorm, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cc947b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
index 445c176..9bd32ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_cc947b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_cc947b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
index 445c176..9bd32ed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_cc947b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_cc947b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl
index 582a37c..e68bf29 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_cc947b() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.spvasm
index f4eb9e2..3637fc5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cc947b "textureDimensions_cc947b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_cc947b = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.wgsl
index f5aa850..6510b1d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cc947b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, write>;
 
 fn textureDimensions_cc947b() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cc947b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl
index 34872d8..30060eb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cd3033();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.dxc.hlsl
index 5769061..8e9a0a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cd3033() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cd3033()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.fxc.hlsl
index 5769061..8e9a0a9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cd3033() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cd3033()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.spvasm
index 99336ef..f76b56f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cd3033 "textureDimensions_cd3033"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -79,7 +79,7 @@
 %textureDimensions_cd3033 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.wgsl
index 5e73e07..e88beb9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cd3033.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureDimensions_cd3033() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cd3033();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl
index 3491e02..32a6201 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 
 // fn textureDimensions(texture: texture_external) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cdc6c9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
index b610d05..f649822 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.dxc.hlsl
@@ -2,6 +2,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cdc6c9() {
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cdc6c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
index b610d05..f649822 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.fxc.hlsl
@@ -2,6 +2,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cdc6c9() {
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cdc6c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl
index 0bb96d5..c6a869b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.glsl
@@ -59,15 +59,15 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 textureDimensions_cdc6c9() {
   uvec2 res = (ext_tex_params.inner.visibleSize + uvec2(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -140,15 +140,15 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uvec2 textureDimensions_cdc6c9() {
   uvec2 res = (ext_tex_params.inner.visibleSize + uvec2(1u));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.spvasm
index 8d711e5..ea56e06 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.spvasm
@@ -45,10 +45,10 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cdc6c9 "textureDimensions_cdc6c9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -100,12 +100,12 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 2
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -133,10 +133,10 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
          %30 = OpTypeFunction %v2uint
      %uint_0 = OpConstant %uint 0
     %uint_16 = OpConstant %uint 16
diff --git a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.wgsl
index 096744d..c260cb2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cdc6c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureDimensions_cdc6c9() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cdc6c9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl
index eba76d4..16165ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cedabd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.dxc.hlsl
index 78ead58..19efd44 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_cedabd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_cedabd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.fxc.hlsl
index 78ead58..19efd44 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureDimensions_cedabd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_cedabd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.spvasm
index a77c277..824f506 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cedabd "textureDimensions_cedabd"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_cedabd = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.wgsl
index 413f80b..0daf4c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cedabd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read>;
 
 fn textureDimensions_cedabd() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cedabd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl
index bbc1724..6201c99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureDimensions(texture: texture_cube_array<f32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cf2b50();
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
index ee3e138..de4fa23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cf2b50() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cf2b50()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
index ee3e138..de4fa23 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_cf2b50() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_cf2b50()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.spvasm
index 32586f0..d1628b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_cf2b50 "textureDimensions_cf2b50"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %30 %31
          %27 = OpVectorShuffle %v2uint %28 %28 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.wgsl
index d32433b..f257803 100644
--- a/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/cf2b50.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureDimensions_cf2b50() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_cf2b50();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl
index dd5c386..c8395d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32uint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d0778e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.dxc.hlsl
index ca5d8ac..a82982f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_d0778e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d0778e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.fxc.hlsl
index ca5d8ac..a82982f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_d0778e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d0778e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.spvasm
index f680ca8..864606c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d0778e "textureDimensions_d0778e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_d0778e = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.wgsl
index a10ba76..6b0416a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d0778e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read>;
 
 fn textureDimensions_d0778e() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d0778e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl
index b9dbe265..a83b90d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba16sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d08a94();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
index 31182b0..1a4dc69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_d08a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_d08a94()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
index 31182b0..1a4dc69 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_d08a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_d08a94()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl
index 9cd4764..0b70605 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2D arg_0;
 uint textureDimensions_d08a94() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.spvasm
index ac45bef..faac3fc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d08a94 "textureDimensions_d08a94"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_d08a94 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.wgsl
index 888c538..21587a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d08a94.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, write>;
 
 fn textureDimensions_d08a94() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d08a94();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl
index 1fe56eb..ac63dca 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<bgra8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d1b882();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
index de29f86..6fbd81a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d1b882() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d1b882()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
index de29f86..6fbd81a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d1b882() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d1b882()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl
index 78480cb..e3e1b21 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d1b882() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.spvasm
index 23e91c7..a7c1bad 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d1b882 "textureDimensions_d1b882"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_d1b882 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.wgsl
index 232b617..35851bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d1b882.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, write>;
 
 fn textureDimensions_d1b882() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d1b882();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl
index aa6062e..939c215 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureDimensions(texture: texture_depth_cube, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d3accd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
index 14362e8..4c070b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d3accd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d3accd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
index 14362e8..4c070b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d3accd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d3accd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.glsl
index ea5ebd0..d4e00d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_d3accd() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_1;
 uvec2 textureDimensions_d3accd() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.spvasm
index ea61f75..56ede4a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d3accd "textureDimensions_d3accd"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v2uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.wgsl
index 2be50fa..c732644 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d3accd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureDimensions_d3accd() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d3accd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl
index 52333f6..cbfbb5b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<bgra8unorm, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44ac3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl
index 64a92d2..d65c499 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44ac3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44ac3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl
index 64a92d2..d65c499 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44ac3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44ac3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl
index 76e1323..5211d3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 uvec2 textureDimensions_d44ac3() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.spvasm
index ce6e0d8..5dd91b7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d44ac3 "textureDimensions_d44ac3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d44ac3 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.wgsl
index 65cd17b..20bbad7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44ac3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read>;
 
 fn textureDimensions_d44ac3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44ac3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl
index 662404f..3d45215 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16uint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44dd1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl
index b3f51e1..d1b4179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44dd1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44dd1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl
index b3f51e1..d1b4179 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d44dd1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d44dd1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl
index ccbb3ae..732306e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec2 textureDimensions_d44dd1() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.spvasm
index 8a0486a..6c9053f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d44dd1 "textureDimensions_d44dd1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d44dd1 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.wgsl
index 86898b6..f5ee851 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d44dd1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read>;
 
 fn textureDimensions_d44dd1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d44dd1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl
index b44940f..18998c9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d63c28();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
index 412ee2d..08573f0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d63c28() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d63c28()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
index 412ee2d..08573f0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d63c28() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d63c28()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl
index dc81af5..a092a22 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_d63c28() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.spvasm
index 4e0b61b..387b6d1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d63c28 "textureDimensions_d63c28"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_d63c28 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.wgsl
index 7808717..4e07a73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d63c28.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureDimensions_d63c28() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d63c28();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl
index a7a8b3a..b5e6d65 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d6f3cf();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl
index a033a2fc..6e0ef05 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d6f3cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d6f3cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl
index a033a2fc..6e0ef05 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_d6f3cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d6f3cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl
index 75f9761..78bf1a2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_d6f3cf() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.spvasm
index 2fad971..c67d532 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d6f3cf "textureDimensions_d6f3cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_d6f3cf = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.wgsl
index d9cd7e2..da51e3a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d6f3cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read>;
 
 fn textureDimensions_d6f3cf() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d6f3cf();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl
index f27fc8d..b45dc7e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8ba68();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
index 0e19753..92f51f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d8ba68() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d8ba68()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
index 0e19753..92f51f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_d8ba68() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_d8ba68()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl
index f6634dc..e5c6ae6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_d8ba68() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.spvasm
index 5d67022..f6ec29c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d8ba68 "textureDimensions_d8ba68"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d8ba68 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.wgsl
index ecf650c..ec7eff1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8ba68.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, write>;
 
 fn textureDimensions_d8ba68() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8ba68();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl
index 3b383f2..5c72c50 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8uint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8f887();
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
index 1c167d6..a4b675c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_d8f887() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d8f887()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
index 1c167d6..a4b675c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_d8f887() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_d8f887()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl
index 6cb4f4d..ea1b74d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage3D arg_0;
 uvec3 textureDimensions_d8f887() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.spvasm
index 92beeb2..4ad7a38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_d8f887 "textureDimensions_d8f887"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_d8f887 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.wgsl
index 489e016..e74ee37 100644
--- a/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/d8f887.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, write>;
 
 fn textureDimensions_d8f887() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_d8f887();
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl
index 84a0a55..06b12e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_da30d2();
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
index f27e22a..d216a4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_da30d2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_da30d2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
index f27e22a..d216a4f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_da30d2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_da30d2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl
index 8f00c5f..da5df70 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_da30d2() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.spvasm
index 39e2fc5..a0e1107 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_da30d2 "textureDimensions_da30d2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_da30d2 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.wgsl
index 21783ce..7a6f0b9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/da30d2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, write>;
 
 fn textureDimensions_da30d2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_da30d2();
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl
index 1538284..6ff1105 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16float, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_daf0fe();
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl
index 171b8aa..5cee15a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_daf0fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_daf0fe()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl
index 171b8aa..5cee15a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_daf0fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_daf0fe()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl
index 12ce36e..ec79bfe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uvec2 textureDimensions_daf0fe() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.spvasm
index 1add129..eb4a7a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_daf0fe "textureDimensions_daf0fe"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_daf0fe = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.wgsl
index 3d53375..fe6dfd8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/daf0fe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureDimensions_daf0fe() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_daf0fe();
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl
index d7fb3cc..a310869 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_db7131();
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.dxc.hlsl
index 5958b23..bf5af1a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_db7131() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_db7131()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.fxc.hlsl
index 5958b23..bf5af1a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_db7131() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_db7131()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl
index 51a4f68..87a25ea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_db7131() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.spvasm
index 8d8f5ee..f87d214 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_db7131 "textureDimensions_db7131"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_db7131 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.wgsl
index 0800e9b..9a71b57 100644
--- a/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/db7131.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read>;
 
 fn textureDimensions_db7131() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_db7131();
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl
index 4a8977a..1c01bf9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dc83ce();
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
index 5adb251..ce598df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dc83ce() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dc83ce()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
index 5adb251..ce598df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dc83ce() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dc83ce()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl
index 5c0deb4..89ed16c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_dc83ce() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.spvasm
index 207784e..211cc33 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_dc83ce "textureDimensions_dc83ce"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_dc83ce = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.wgsl
index 5b0091c..f517278 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dc83ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, write>;
 
 fn textureDimensions_dc83ce() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dc83ce();
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl
index 834e373..32f659e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_de03c6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.dxc.hlsl
index 811e528..35e29cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_de03c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_de03c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.fxc.hlsl
index 811e528..35e29cf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureDimensions_de03c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_de03c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl
index 8431c85..5ffdf7e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uint textureDimensions_de03c6() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.spvasm
index c7be630..addf270 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_de03c6 "textureDimensions_de03c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_de03c6 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.wgsl
index 6882472..f1278c2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/de03c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read>;
 
 fn textureDimensions_de03c6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_de03c6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl
index e2c655a..6cc3380 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_deb3c0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl
index 37709b0..c6a682f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_deb3c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_deb3c0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl
index 37709b0..c6a682f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_deb3c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_deb3c0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.glsl
index 22d3c2f..fbf3278 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_deb3c0() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_deb3c0() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.spvasm
index 776cd7e..40d0f93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_deb3c0 "textureDimensions_deb3c0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_deb3c0 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.wgsl
index a975fca..2cb5605 100644
--- a/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/deb3c0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
 
 fn textureDimensions_deb3c0() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_deb3c0();
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl
index 0e6c451..7e1378c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8snorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dee461();
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl
index 5c25817..4f40180 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dee461() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dee461()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl
index 5c25817..4f40180 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_dee461() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dee461()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl
index 03f60fc..6356eba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_dee461() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.spvasm
index 61e1ce8..c70dcb3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_dee461 "textureDimensions_dee461"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_dee461 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.wgsl
index abdc467..29e2608 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dee461.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, write>;
 
 fn textureDimensions_dee461() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dee461();
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl
index c3e83fe..cdfaea8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dfdc32();
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
index 55a904b..0948bf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_dfdc32() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dfdc32()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
index 55a904b..0948bf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_dfdc32() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_dfdc32()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.glsl
index 56fd81e..9178614 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_dfdc32() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_dfdc32() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.spvasm
index e76f118..0c9fd3a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_dfdc32 "textureDimensions_dfdc32"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.wgsl
index 6475a60..e24e427 100644
--- a/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/dfdc32.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureDimensions_dfdc32() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_dfdc32();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl
index f80c9cd..98895b8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8snorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e122fe();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
index d4191a2..6f7a4a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_e122fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_e122fe()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
index d4191a2..6f7a4a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_e122fe() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_e122fe()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl
index 1cb6a790..bee8367 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2D arg_0;
 uint textureDimensions_e122fe() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.spvasm
index 440015c..66ebe1d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e122fe "textureDimensions_e122fe"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_e122fe = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.wgsl
index 23f199c..78bf23f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e122fe.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, write>;
 
 fn textureDimensions_e122fe() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e122fe();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl
index 5cbff1c..2996af5 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureDimensions(texture: texture_2d<u32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e18a8b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
index cafa854..ca2d68e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e18a8b() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e18a8b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
index cafa854..ca2d68e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e18a8b() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e18a8b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.glsl
index 2f410a1..6de8532 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_e18a8b() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec2 textureDimensions_e18a8b() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.spvasm
index e712e21..d459bed 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e18a8b "textureDimensions_e18a8b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageQuerySizeLod %v2uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.wgsl
index 7aa23ec..b9291d4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e18a8b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureDimensions_e18a8b() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e18a8b();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl
index d2bef25..6f3ee34 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureDimensions(texture: texture_multisampled_2d<u32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4bfd2();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
index 3483f11..a5b5661 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4bfd2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4bfd2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
index 3483f11..a5b5661 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4bfd2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4bfd2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.glsl
index 3627cd0..907e828 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec2 textureDimensions_e4bfd2() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec2 textureDimensions_e4bfd2() {
   uvec2 res = uvec2(textureSize(arg_0_1));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.spvasm
index ffc5e8e..b57a6aa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e4bfd2 "textureDimensions_e4bfd2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_e4bfd2 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.wgsl
index 0b3368c..c465e7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4bfd2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureDimensions_e4bfd2() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4bfd2();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl
index 754c902..916335e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureDimensions(texture: texture_2d_array<i32>, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4e310();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
index fee675a..eeebe7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4e310() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4e310()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
index fee675a..eeebe7c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_e4e310() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4e310()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.glsl
index 915a395..2d50f18 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_e4e310() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_e4e310() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.spvasm
index a0bf7a1..47550ba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e4e310 "textureDimensions_e4e310"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %uint %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.wgsl
index eb3cac6..8ccd82a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4e310.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureDimensions_e4e310() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4e310();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl
index 1cd81da..218cbef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4f021();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.dxc.hlsl
index 048dbae..e0eaebd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e4f021() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4f021()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.fxc.hlsl
index 048dbae..e0eaebd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e4f021() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e4f021()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.glsl
index c917911..13c68c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_e4f021() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_e4f021() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.spvasm
index 9c4bbac..6886d45 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e4f021 "textureDimensions_e4f021"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_e4f021 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.wgsl
index 2a34a71..609c570 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e4f021.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
 
 fn textureDimensions_e4f021() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e4f021();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl
index 73f66e6..cf5e403 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e50eb8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl
index dadc5bc..0d2674e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e50eb8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e50eb8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl
index dadc5bc..0d2674e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e50eb8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e50eb8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.glsl
index 9f9c985..db726f1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e50eb8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e50eb8() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.spvasm
index d25daf2..8da1759 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e50eb8 "textureDimensions_e50eb8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_e50eb8 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.wgsl
index f188107..9b2f04f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e50eb8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
 
 fn textureDimensions_e50eb8() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e50eb8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl
index 0aa900f..98dafe4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureDimensions(texture: texture_3d<u32>, level: i32) -> vec3<u32>
@@ -42,8 +45,6 @@
   var res: vec3<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e5a203();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
index 17ffde9..c7929e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_e5a203() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e5a203()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
index 17ffde9..c7929e2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_e5a203() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e5a203()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.glsl
index 2840ab3..9968db1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.glsl
@@ -2,6 +2,11 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_e5a203() {
   int arg_1 = 1;
@@ -9,11 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -29,6 +29,11 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec3 textureDimensions_e5a203() {
   int arg_1 = 1;
@@ -36,11 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.spvasm
index 2c5ff6c..37e7f93 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e5a203 "textureDimensions_e5a203"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v3uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageQuerySizeLod %v3uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.wgsl
index 7219299..0f5f3fc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e5a203.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureDimensions_e5a203() -> vec3<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e5a203();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl
index 06b7825..1261aea 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rg32sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e738f4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
index f4a4b7f..fca78b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_e738f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e738f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
index f4a4b7f..fca78b6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_e738f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_e738f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.spvasm
index 9593909..1f78e7a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e738f4 "textureDimensions_e738f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_e738f4 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.wgsl
index 8960edd..56d6ec1 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e738f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, write>;
 
 fn textureDimensions_e738f4() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e738f4();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl
index 01b4666..5832b08 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rg32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e824b6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.dxc.hlsl
index a18e2c5..bb203dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e824b6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e824b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.fxc.hlsl
index a18e2c5..bb203dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e824b6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e824b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.spvasm
index caa3f72..7e15b20 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e824b6 "textureDimensions_e824b6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_e824b6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.wgsl
index f316392..ec48367 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e824b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureDimensions_e824b6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e824b6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl
index 0d95258..42ccec9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba16uint, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e99308();
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl
index 46c645d..e52ee7f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e99308() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e99308()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl
index 46c645d..e52ee7f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_e99308() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_e99308()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl
index cbf049f..2553cce 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2D arg_0;
 uvec2 textureDimensions_e99308() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.spvasm
index 5c54c18..a8ba59a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_e99308 "textureDimensions_e99308"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_e99308 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.wgsl
index e8dc121..41c5023 100644
--- a/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/e99308.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, write>;
 
 fn textureDimensions_e99308() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_e99308();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl
index d0be869..0f0b292 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<r32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea066c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
index 4eeff36..7557522 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea066c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea066c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
index 4eeff36..7557522 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea066c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea066c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl
index 4a8543c..ae90f54 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2D arg_0;
 uint textureDimensions_ea066c() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.spvasm
index 156eb7d..c7484d0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ea066c "textureDimensions_ea066c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_ea066c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.wgsl
index da95e5d..2ccd292 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea066c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, write>;
 
 fn textureDimensions_ea066c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea066c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl
index fe136ab..0f3b0d7 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea25bc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
index 7e9ac6c..577a7f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea25bc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea25bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
index 7e9ac6c..577a7f4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_ea25bc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_ea25bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.spvasm
index 38c2c0b..68487c4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ea25bc "textureDimensions_ea25bc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_ea25bc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.wgsl
index ed9a2e3..9eeb696 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ea25bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, write>;
 
 fn textureDimensions_ea25bc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ea25bc();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl
index 2a8288b..bf935a0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureDimensions(texture: texture_depth_2d_array, level: u32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eafe19();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
index 316351d..f295a52 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_eafe19() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eafe19()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
index 316351d..f295a52 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint2 textureDimensions_eafe19() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eafe19()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.glsl
index 68ee2a3..d727839 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_eafe19() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uvec2 textureDimensions_eafe19() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.spvasm
index dde34ed..4f9cd1c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eafe19 "textureDimensions_eafe19"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %28 = OpImageQuerySizeLod %v3uint %30 %31
          %27 = OpVectorShuffle %v2uint %28 %28 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.wgsl
index 85f5187..0b9d4a3 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eafe19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureDimensions_eafe19() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eafe19();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl
index 32cb2f4..bd381f9 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba16float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb03b1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
index 5b68525..c83464e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb03b1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb03b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
index 5b68525..c83464e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb03b1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb03b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl
index 16c9f68..be18988 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uvec2 textureDimensions_eb03b1() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.spvasm
index d38a788..e58c1f2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb03b1 "textureDimensions_eb03b1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_eb03b1 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %26 = OpLoad %16 %arg_0
+         %26 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpVectorShuffle %v2uint %24 %24 0 1
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.wgsl
index 8bb7abe..48ba66a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb03b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureDimensions_eb03b1() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb03b1();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl
index c002f88..a2a34e8 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba8unorm, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb10d6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl
index 24ad66d..828bedd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb10d6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb10d6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl
index 24ad66d..828bedd 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb10d6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb10d6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.glsl
index f76502e..2fc4d29 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_eb10d6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_eb10d6() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.spvasm
index 5223a36..afbd938 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb10d6 "textureDimensions_eb10d6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_eb10d6 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.wgsl
index a251da3..f33710b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb10d6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
 
 fn textureDimensions_eb10d6() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb10d6();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl
index eec8e7d..51743ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb1249();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.dxc.hlsl
index 3734b2a..6dd5584 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_eb1249() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_eb1249()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.fxc.hlsl
index 3734b2a..6dd5584 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint textureDimensions_eb1249() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_eb1249()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.glsl
index c852d5e..c669c99 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_eb1249() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2D arg_0;
 uint textureDimensions_eb1249() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.spvasm
index ad61032..4face64 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb1249 "textureDimensions_eb1249"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_eb1249 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.wgsl
index 4247ed2..9d30505 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb1249.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
 
 fn textureDimensions_eb1249() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb1249();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl
index 2398413..afd9a8f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba8sint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb9f4d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl
index 53bf1e9..723c3ba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb9f4d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb9f4d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl
index 53bf1e9..723c3ba 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_eb9f4d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_eb9f4d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.glsl
index 81bb09d..0780fc6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_eb9f4d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uvec2 textureDimensions_eb9f4d() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.spvasm
index 8156166..74d15ef 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_eb9f4d "textureDimensions_eb9f4d"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_eb9f4d = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.wgsl
index feb6a98..c11ceca 100644
--- a/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/eb9f4d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureDimensions_eb9f4d() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_eb9f4d();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl
index d06574b..cb6c737 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<r32uint, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ed1030();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.dxc.hlsl
index ca87f4c..e786c76 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ed1030() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ed1030()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.fxc.hlsl
index ca87f4c..e786c76 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_ed1030() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_ed1030()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl
index 39e64af..e34acf2 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec2 textureDimensions_ed1030() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.spvasm
index ef9707d..710490c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ed1030 "textureDimensions_ed1030"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_ed1030 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.wgsl
index 9a57ad5..3badffa 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ed1030.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
 
 fn textureDimensions_ed1030() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ed1030();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl
index 6ea2588..cf9f31d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<r32sint, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ef2e58();
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
index 1241c23..9318428 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ef2e58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ef2e58()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
index 1241c23..9318428 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_ef2e58() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_ef2e58()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl
index bcdf801..570125e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage3D arg_0;
 uvec3 textureDimensions_ef2e58() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.spvasm
index 316a268..2ee1d42 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_ef2e58 "textureDimensions_ef2e58"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_ef2e58 = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.wgsl
index ddf01c4..d1b9a72 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ef2e58.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, write>;
 
 fn textureDimensions_ef2e58() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_ef2e58();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl
index b411aef..409399c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureDimensions(texture: texture_1d<f32>, level: i32) -> u32
@@ -42,8 +45,6 @@
   var res: u32 = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f17acd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
index 4265ae5..fec327d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_f17acd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f17acd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
index 4265ae5..fec327d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_f17acd() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f17acd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.glsl
index 3c12608..87b1a9b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_f17acd() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 uint textureDimensions_f17acd() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.spvasm
index 778f081..19f1016 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f17acd "textureDimensions_f17acd"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_uint Function %9
                OpStore %arg_1 %int_1
-         %28 = OpLoad %15 %arg_0
+         %28 = OpLoad %18 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageQuerySizeLod %uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.wgsl
index 22e8acd..45d7e44 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f17acd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureDimensions_f17acd() -> u32 {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f17acd();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl
index 66326fd..e5fd717 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rg32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f264a3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
index d1be7bb..a31cb64 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f264a3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f264a3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
index d1be7bb..a31cb64 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f264a3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f264a3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.spvasm
index 1feac33..8a04c73 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f264a3 "textureDimensions_f264a3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,13 +55,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -78,7 +78,7 @@
 %textureDimensions_f264a3 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.wgsl
index f8075cf..da52517 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f264a3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, write>;
 
 fn textureDimensions_f264a3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f264a3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl
index 846a821..a02e0b0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba16float, write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f3a2ac();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
index f5a5f92..0f24deb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f3a2ac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f3a2ac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
index f5a5f92..0f24deb 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f3a2ac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f3a2ac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl
index b73f64e..33bc9ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f3a2ac() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.spvasm
index 9f226b3..e68ff89 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f3a2ac "textureDimensions_f3a2ac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_f3a2ac = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.wgsl
index cef2c19e..ba8b931 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f3a2ac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, write>;
 
 fn textureDimensions_f3a2ac() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f3a2ac();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl
index 6f0a2b3..e273387 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_1d<rgba8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f406ff();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.dxc.hlsl
index 5b192f9..85c2111 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f406ff() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f406ff()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.fxc.hlsl
index 5b192f9..85c2111 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 uint textureDimensions_f406ff() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_f406ff()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.glsl
index 73ef73f..690c572 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_f406ff() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uint textureDimensions_f406ff() {
   uint res = uvec2(imageSize(arg_0)).x;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.spvasm
index 3478e1a..9f8bf82 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f406ff "textureDimensions_f406ff"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_f406ff = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.wgsl
index 499d03d..dbd1c84 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f406ff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
 
 fn textureDimensions_f406ff() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f406ff();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl
index 0056919..043f299 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32sint, read>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4321c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.dxc.hlsl
index 29bcef3..5509351 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_f4321c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f4321c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.fxc.hlsl
index 29bcef3..5509351 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint3 textureDimensions_f4321c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f4321c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl
index b569bca..dca1a94 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 uvec3 textureDimensions_f4321c() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.spvasm
index 885df1b..1fcc689 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f4321c "textureDimensions_f4321c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_f4321c = OpFunction %v3uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v3uint %25
                OpStore %res %24
          %28 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.wgsl
index b8f0b9b..2c69b3d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4321c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read>;
 
 fn textureDimensions_f4321c() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4321c();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl
index e06b477..3da65ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f48886();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.dxc.hlsl
index b9f9b60..a4fb37a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f48886() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f48886()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.fxc.hlsl
index b9f9b60..a4fb37a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f48886() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f48886()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl
index e19d416..9ed7071 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 uvec2 textureDimensions_f48886() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.spvasm
index 1cd24ce..3de0167 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f48886 "textureDimensions_f48886"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_f48886 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySize %v2uint %25
                OpStore %res %24
          %28 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.wgsl
index a7612b4..1722f0e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f48886.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read>;
 
 fn textureDimensions_f48886() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f48886();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl
index a2926f7..5db9f9e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rgba32float, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4e469();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
index ef2c13e..ec576fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f4e469() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f4e469()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
index ef2c13e..ec576fe 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f4e469() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f4e469()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl
index 593a21c..f4d43bf 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_f4e469() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.spvasm
index 362d6b6..d3ef6c0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f4e469 "textureDimensions_f4e469"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_f4e469 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.wgsl
index 1f9d68a..8ade4fc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f4e469.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, write>;
 
 fn textureDimensions_f4e469() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f4e469();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl
index 4f9e3dd..4bf8e8c 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba8snorm, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f55a94();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.dxc.hlsl
index b40b0c2..29fab8a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f55a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f55a94()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.fxc.hlsl
index b40b0c2..29fab8a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f55a94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f55a94()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.glsl
index 2996970..b69b53f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f55a94() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f55a94() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.spvasm
index 75c6a6f..0e53390 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f55a94 "textureDimensions_f55a94"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_f55a94 = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.wgsl
index f75ba84..e0c9a38 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f55a94.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
 
 fn textureDimensions_f55a94() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f55a94();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl
index 70043fb..3d2f276 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureDimensions(texture: texture_cube<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f626b3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
index 3839781..ae857c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f626b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f626b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
index 3839781..ae857c6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f626b3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f626b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.glsl
index b1cd522..58120ae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_f626b3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_0_1;
 uvec2 textureDimensions_f626b3() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.spvasm
index 543a932..616b876 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f626b3 "textureDimensions_f626b3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_f626b3 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %int_0
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.wgsl
index c27b05a..d2e4091 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f626b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureDimensions_f626b3() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f626b3();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl
index 2963e50..23a3ff6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureDimensions(texture: texture_storage_2d_array<rgba32sint, read>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f7bac5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl
index c79f113..db86f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f7bac5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f7bac5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl
index c79f113..db86f5d 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f7bac5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f7bac5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl
index 90a50f2..81b6a01 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uvec2 textureDimensions_f7bac5() {
   uvec2 res = uvec2(imageSize(arg_0).xy);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.spvasm
index 3fd04d6..02f07ff 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f7bac5 "textureDimensions_f7bac5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -78,7 +78,7 @@
 %textureDimensions_f7bac5 = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %27 = OpLoad %16 %arg_0
+         %27 = OpLoad %19 %arg_0
          %25 = OpImageQuerySize %v3uint %27
          %24 = OpVectorShuffle %v2uint %25 %25 0 1
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.wgsl
index 3447353..f3bd8ab 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f7bac5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureDimensions_f7bac5() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f7bac5();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl
index 9c548f7..a30ccfc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureDimensions(texture: texture_2d<i32>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f8522e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
index 1f65e99..749d1df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f8522e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f8522e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
index 1f65e99..749d1df 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_f8522e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f8522e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.glsl
index 06b22af..0e00eae 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_f8522e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 uvec2 textureDimensions_f8522e() {
   uvec2 res = uvec2(textureSize(arg_0_1, 0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.spvasm
index 8c8c3af..d54d5fc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f8522e "textureDimensions_f8522e"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_0 = OpConstant %int 0
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
@@ -77,7 +77,7 @@
 %textureDimensions_f8522e = OpFunction %v2uint None %21
          %23 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %25 = OpLoad %16 %arg_0
+         %25 = OpLoad %19 %arg_0
          %24 = OpImageQuerySizeLod %v2uint %25 %int_0
                OpStore %res %24
          %29 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.wgsl
index e74a234..be90fec 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f8522e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureDimensions_f8522e() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f8522e();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl
index 5f67c02..c5642d0 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_3d<rgba32float, read_write>) -> vec3<u32>
@@ -41,8 +44,6 @@
   var res: vec3<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f93ece();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.dxc.hlsl
index e1431dd..97f6289 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f93ece() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f93ece()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.fxc.hlsl
index e1431dd..97f6289 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 uint3 textureDimensions_f93ece() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(textureDimensions_f93ece()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.glsl
index 60f10ec..b76238e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f93ece() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec3 inner;
+  uint pad;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image3D arg_0;
 uvec3 textureDimensions_f93ece() {
   uvec3 res = uvec3(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.spvasm
index ce54533..bf4426e 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f93ece "textureDimensions_f93ece"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v3uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v3uint
 %_ptr_Function_v3uint = OpTypePointer Function %v3uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureDimensions_f93ece = OpFunction %v3uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v3uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v3uint %24
                OpStore %res %23
          %27 = OpLoad %v3uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.wgsl
index 478c081..067b576 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f93ece.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
 
 fn textureDimensions_f93ece() -> vec3<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f93ece();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl
index 4c4c621..e585621 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureDimensions(texture: texture_storage_2d<rg32float, read_write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f94e55();
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.dxc.hlsl
index 88d75f0..6f24138 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f94e55() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f94e55()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.fxc.hlsl
index 88d75f0..6f24138 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_f94e55() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_f94e55()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.spvasm
index 795d6e5..0078335 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_f94e55 "textureDimensions_f94e55"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_f94e55 = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.wgsl
index ff56a80..4d6f82b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/f94e55.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
 
 fn textureDimensions_f94e55() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_f94e55();
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl
index 7d263d8..f607685 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, write>;
 
 // fn textureDimensions(texture: texture_storage_2d<bgra8unorm, write>) -> vec2<u32>
@@ -41,8 +44,6 @@
   var res: vec2<u32> = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fbb15a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
index 1abecd5..c4314e6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_fbb15a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fbb15a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
index 1abecd5..c4314e6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 uint2 textureDimensions_fbb15a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fbb15a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl
index 7d167ec..874b965 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2D arg_0;
 uvec2 textureDimensions_fbb15a() {
   uvec2 res = uvec2(imageSize(arg_0));
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.spvasm
index 5083941..d8d888f 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_fbb15a "textureDimensions_fbb15a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v2uint
 %_ptr_Function_v2uint = OpTypePointer Function %v2uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureDimensions_fbb15a = OpFunction %v2uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_v2uint Function %10
-         %24 = OpLoad %16 %arg_0
+         %24 = OpLoad %19 %arg_0
          %23 = OpImageQuerySize %v2uint %24
                OpStore %res %23
          %27 = OpLoad %v2uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.wgsl
index f68c163..36a6572 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fbb15a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, write>;
 
 fn textureDimensions_fbb15a() -> vec2<u32> {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fbb15a();
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl
index a2550f6..19e97e4 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read>;
 
 // fn textureDimensions(texture: texture_storage_1d<r8unorm, read>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureDimensions(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdbae8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl
index cc4fec2..3f8f484 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_fdbae8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_fdbae8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl
index cc4fec2..3f8f484 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureDimensions_fdbae8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureDimensions_fdbae8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.spvasm
index 5c28360..265ee6a 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.spvasm
@@ -16,10 +16,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_fdbae8 "textureDimensions_fdbae8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -77,7 +77,7 @@
 %textureDimensions_fdbae8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySize %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.wgsl
index 08e2f05..82b82a6 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdbae8.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read>;
 
 fn textureDimensions_fdbae8() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdbae8();
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl
index 854fdbd..0606d4b 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureDimensions(texture: texture_2d_array<i32>, level: i32) -> vec2<u32>
@@ -42,8 +45,6 @@
   var res: vec2<u32> = textureDimensions(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdf6e9();
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
index 68aa5a8..a5ec857 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_fdf6e9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fdf6e9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
index 68aa5a8..a5ec857 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint2 textureDimensions_fdf6e9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(textureDimensions_fdf6e9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.glsl
index fcadf32..4bee0be 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_fdf6e9() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec2 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uvec2 textureDimensions_fdf6e9() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.spvasm
index 0c854e4..f8074dc 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureDimensions_fdf6e9 "textureDimensions_fdf6e9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-        %int = OpTypeInt 32 1
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v2uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %21 = OpTypeFunction %v2uint
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v2uint Function %10
                OpStore %arg_1 %int_1
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %int %arg_1
          %29 = OpImageQuerySizeLod %v3uint %31 %32
          %28 = OpVectorShuffle %v2uint %29 %29 0 1
diff --git a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.wgsl
index 31ab61fc..c192431 100644
--- a/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureDimensions/fdf6e9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureDimensions_fdf6e9() -> vec2<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureDimensions_fdf6e9();
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl
index 50e868d..e2622a8 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_0166ec();
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl
index 74f3345..3b6b5b5 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl
index 74f3345..3b6b5b5 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_0166ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl
index 4fabaef..7cd1659 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_0166ec() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_0166ec() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm
index a06fd83..41a3019 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_0166ec "textureGather_0166ec"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %31 = OpConstantNull %v3float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -89,8 +89,8 @@
       %arg_3 = OpVariable %_ptr_Function_v3float Function %31
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v3float %arg_3
          %32 = OpImageGather %v4int %36 %37 %uint_1
diff --git a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl
index 3020f2b..2da0fa6 100644
--- a/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/0166ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_0166ec();
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
index 7534751..6bf8413 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_04fa78();
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl
index 6bfb2ba..ce7f413 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl
index 6bfb2ba..ce7f413 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_04fa78()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm
index 84d73d8..e91efea 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_04fa78 "textureGather_04fa78"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %36 = OpConstantNull %uint
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
          %52 = OpTypeFunction %void
@@ -95,8 +95,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %42 = OpLoad %v3float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl
index 32c3327..e879d54 100644
--- a/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/04fa78.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_04fa78();
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl
index e4d8b61..3d67ae7 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_10c554();
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl
index 972ae5e..110bca7 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_10c554()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl
index 972ae5e..110bca7 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_10c554()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl
index 29df867..f22453b 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGather_10c554() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGather_10c554() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm
index 8b8c8e1..3160f18 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_10c554 "textureGather_10c554"
                OpName %arg_2 "arg_2"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -86,8 +86,8 @@
       %arg_2 = OpVariable %_ptr_Function_v3float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
-         %29 = OpLoad %15 %arg_1
-         %30 = OpLoad %12 %arg_0
+         %29 = OpLoad %18 %arg_1
+         %30 = OpLoad %15 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v3float %arg_2
          %28 = OpImageGather %v4float %32 %33 %int_0
diff --git a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl
index 32a4341..92e8890 100644
--- a/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/10c554.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_10c554();
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl
index 7bb0de3..4c42341 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_11b2db();
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl
index a2c848c..6c5ae77 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl
index a2c848c..6c5ae77 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_11b2db()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl
index 9ed16f7..0efce1a 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_11b2db() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_11b2db() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm
index edeb238..d502bfd 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_11b2db "textureGather_11b2db"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -84,8 +84,8 @@
       %arg_3 = OpVariable %_ptr_Function_v3float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
-         %29 = OpLoad %15 %arg_2
-         %30 = OpLoad %12 %arg_1
+         %29 = OpLoad %18 %arg_2
+         %30 = OpLoad %15 %arg_1
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v3float %arg_3
          %28 = OpImageGather %v4float %32 %33 %uint_1
diff --git a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl
index 284453a..1bc04a9 100644
--- a/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/11b2db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_11b2db();
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl
index f14dd19..15f7cbb 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_17baac();
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl
index a1dbde0..d7d69c9 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_17baac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl
index a1dbde0..d7d69c9 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_17baac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl
index 2b3be18..a3046a2 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_17baac() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_17baac() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm
index a817209..6859c47 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_17baac "textureGather_17baac"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %uint_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl
index efd03df..c7829a1 100644
--- a/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/17baac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_17baac();
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl
index b82b521..35030e4 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1bf0ab();
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
index 8c1abfe..5c3ee5a 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1bf0ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
index 8c1abfe..5c3ee5a 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1bf0ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl
index 6fbef33..d8036c1 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_1bf0ab() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_1bf0ab() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm
index b8b787e..ce82c9b3 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_1bf0ab "textureGather_1bf0ab"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %35 = OpConstantNull %uint
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl
index 4a67ab2..77a4725 100644
--- a/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1bf0ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1bf0ab();
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl
index 2014208..701e184 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1f7f6b();
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
index 86d9116..d731cd4 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
index 86d9116..d731cd4 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_1f7f6b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl
index 96c6903..1ce0f7a 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_1f7f6b() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_1f7f6b() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm
index 52b1fee..4fd8a7f 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_1f7f6b "textureGather_1f7f6b"
                OpName %arg_2 "arg_2"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
@@ -89,8 +89,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
-         %29 = OpLoad %15 %arg_1
-         %30 = OpLoad %12 %arg_0
+         %29 = OpLoad %18 %arg_1
+         %30 = OpLoad %15 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v2float %arg_2
          %28 = OpImageGather %v4float %32 %33 %int_0 ConstOffset %38
diff --git a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl
index c653d2b..1629a238 100644
--- a/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/1f7f6b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_1f7f6b();
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl
index db1aaf8..fef1ab0 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_22e930();
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl
index 5b7b5be..01b5115 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_22e930()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl
index 5b7b5be..01b5115 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_22e930()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl
index 0fc5d27..4944f6d 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_22e930() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_22e930() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm
index fb22085..2fcf950 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_22e930 "textureGather_22e930"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %int_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl
index 70238f1..021b0c3 100644
--- a/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/22e930.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_22e930();
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl
index 4c1701f..3922042 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_238ec4();
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl
index 38af9e5..04f3641 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl
index 38af9e5..04f3641 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_238ec4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl
index 834a237..60125c4 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_238ec4() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_238ec4() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm
index 5958e19..145d375 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_238ec4 "textureGather_238ec4"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %uint_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl
index 203998a..d5172a2 100644
--- a/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/238ec4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_238ec4();
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl
index a53d685..a070579 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_24b0bd();
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl
index 8413648..88538ee 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl
index 8413648..88538ee 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_24b0bd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl
index c837c29..9c4234b 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_24b0bd() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_24b0bd() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm
index a52a195..b1f65df 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_24b0bd "textureGather_24b0bd"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %int_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl
index 525f369..aae91c5 100644
--- a/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/24b0bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_24b0bd();
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl
index a811300..ca20ab6 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_269250();
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl
index daeb12b..22a7d46 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_269250()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl
index daeb12b..22a7d46 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_269250()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl
index e112d79..3f28a61 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_269250() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_269250() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm
index 9f83f7b..fce02c5 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_269250 "textureGather_269250"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %36 = OpConstantNull %uint
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
@@ -95,8 +95,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl
index 1f6659f..eccbf6b 100644
--- a/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/269250.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_269250();
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl
index 9e20ee1..0e9688d 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2a4f40();
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl
index 10e3ab3..a1bb53b 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl
index 10e3ab3..a1bb53b 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2a4f40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl
index e11d6ca..ffc6e7e 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_2a4f40() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_2a4f40() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm
index 2f2c932..0b67cc6 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_2a4f40 "textureGather_2a4f40"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
-         %34 = OpLoad %15 %arg_1
-         %35 = OpLoad %12 %arg_0
+         %34 = OpLoad %18 %arg_1
+         %35 = OpLoad %15 %arg_0
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_2
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl
index 37f801a..d835202 100644
--- a/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2a4f40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2a4f40();
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl
index 18322ec..f8ae6e9 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2cc066();
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl
index 5a7594a..556ccb7 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2cc066()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl
index 5a7594a..556ccb7 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2cc066()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl
index f3abf50..733da9a 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_2cc066() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_2cc066() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm
index d95ffb3..c1ca2d7 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_2cc066 "textureGather_2cc066"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %36 = OpConstantNull %int
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl
index 5212d20..4306d8f 100644
--- a/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2cc066.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2cc066();
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl
index e18a71a..2e154f5 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2e0ed5();
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
index 3f5c7ff..a6d818a 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
index 3f5c7ff..a6d818a 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_2e0ed5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl
index 461d86c..bb78210 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_2e0ed5() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGather_2e0ed5() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm
index 4f3141c..c002f4a 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_2e0ed5 "textureGather_2e0ed5"
                OpName %arg_2 "arg_2"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -86,8 +86,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
-         %29 = OpLoad %15 %arg_1
-         %30 = OpLoad %12 %arg_0
+         %29 = OpLoad %18 %arg_1
+         %30 = OpLoad %15 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v2float %arg_2
          %28 = OpImageGather %v4float %32 %33 %int_0
diff --git a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl
index a3ff075..94db987 100644
--- a/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/2e0ed5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_2e0ed5();
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl
index 179f28d..2ed3294 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_32c4e8();
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl
index 9051774..cb89a87 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl
index 9051774..cb89a87 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_32c4e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl
index c7ef3ff..245716e 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_32c4e8() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_1_arg_2;
 
 vec4 textureGather_32c4e8() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm
index 625c508..1cdcac5 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_32c4e8 "textureGather_32c4e8"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -86,8 +86,8 @@
       %arg_3 = OpVariable %_ptr_Function_v3float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
-         %29 = OpLoad %15 %arg_2
-         %30 = OpLoad %12 %arg_1
+         %29 = OpLoad %18 %arg_2
+         %30 = OpLoad %15 %arg_1
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v3float %arg_3
          %28 = OpImageGather %v4float %32 %33 %int_1
diff --git a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl
index 0d45410..80380e9 100644
--- a/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/32c4e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_32c4e8();
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl
index f35baa8..b7030a8 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_3b32cc();
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl
index 340dd6c..d79d9f0 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_3b32cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl
index 340dd6c..d79d9f0 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_3b32cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl
index 016e6f0..1b94ac9 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_3b32cc() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_3b32cc() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm
index d1c5706..d2df095 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_3b32cc "textureGather_3b32cc"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %31 = OpConstantNull %v3float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -90,8 +90,8 @@
       %arg_3 = OpVariable %_ptr_Function_v3float Function %31
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v3float %arg_3
          %32 = OpImageGather %v4uint %36 %37 %int_1
diff --git a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl
index e66ab94..7662bcb 100644
--- a/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/3b32cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_3b32cc();
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl
index 3bff395..ef02984 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_43025d();
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl
index 6618e2a..dce793c 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_43025d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl
index 6618e2a..dce793c 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_43025d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm
index 5d42f68..99de82b 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_43025d "textureGather_43025d"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -93,8 +93,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
-         %34 = OpLoad %15 %arg_1
-         %35 = OpLoad %12 %arg_0
+         %34 = OpLoad %18 %arg_1
+         %35 = OpLoad %15 %arg_0
          %37 = OpSampledImage %36 %35 %34
          %38 = OpLoad %v3float %arg_2
          %39 = OpCompositeExtract %float %38 0
diff --git a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl
index 2f48232..06a80ad 100644
--- a/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/43025d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_43025d();
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl
index ecaabbe..49fcd9d 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_445793();
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl
index df7e158..864781d 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_445793()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl
index df7e158..864781d 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_445793()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl
index 466352f..274a61a 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_445793() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_445793() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm
index 41812cf..d518b11 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_445793 "textureGather_445793"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %35 = OpConstantNull %int
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl
index eace0c8..8aa8abf 100644
--- a/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/445793.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_445793();
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl
index 7d02979..54fad99 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_49b07f();
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl
index 778552e..f394c8c 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_49b07f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl
index 778552e..f394c8c 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_49b07f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl
index a6a30a4..c4e8a87 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_49b07f() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_49b07f() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm
index ac1cee0..60d87e0 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_49b07f "textureGather_49b07f"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
@@ -92,8 +92,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4uint %36 %37 %int_1 ConstOffset %41
diff --git a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl
index 86de59a..11bc07e 100644
--- a/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/49b07f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_49b07f();
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl
index 037b715..c0c2723 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4b8103();
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl
index b7faeb5..376acd1 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl
index b7faeb5..376acd1 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4b8103()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl
index 8b560ec..8db0e11 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_4b8103() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_4b8103() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm
index 7b3c6e9..218198c 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_4b8103 "textureGather_4b8103"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %46 = OpConstantComposite %v2int %int_1 %int_1
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %int_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl
index 0d6a2e3..8c07b22 100644
--- a/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4b8103.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4b8103();
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl
index 506b280..39a938c 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4e8ac5();
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
index 624c27d..7d93e7a 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
index 624c27d..7d93e7a 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_4e8ac5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl
index 36c31de..7936c71 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_4e8ac5() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_4e8ac5() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm
index f1fbe07..e2c2f00 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_4e8ac5 "textureGather_4e8ac5"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %36 = OpConstantNull %uint
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl
index 6e320f6..f0f76f5 100644
--- a/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/4e8ac5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_4e8ac5();
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl
index f97b150..49dddcc 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5266da();
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl
index fc487f9..b024680 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5266da()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl
index fc487f9..b024680 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5266da()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl
index f22bdc2..ec48d84 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_5266da() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_5266da() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm
index 26c0f1f..bcbe29c 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_5266da "textureGather_5266da"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -86,8 +86,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
-         %29 = OpLoad %15 %arg_2
-         %30 = OpLoad %12 %arg_1
+         %29 = OpLoad %18 %arg_2
+         %30 = OpLoad %15 %arg_1
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v2float %arg_3
          %28 = OpImageGather %v4float %32 %33 %int_1
diff --git a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl
index 0f69f33..a00c8b2 100644
--- a/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5266da.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5266da();
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl
index 6200b0b..accc38c 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_59372a();
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl
index c9ac433..afe1508 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_59372a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl
index c9ac433..afe1508 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_59372a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl
index 3f17e2e..c44b138 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_59372a() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_59372a() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm
index 1c8968a..7130d71 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_59372a "textureGather_59372a"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %uint_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl
index 494db36..bc0deac 100644
--- a/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/59372a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_59372a();
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl
index 52e7568..99e5ac3 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5ba85f();
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl
index f01298e..bbcb2e9 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl
index f01298e..bbcb2e9 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5ba85f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl
index 677619b..e25d2c8 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_5ba85f() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isamplerCube arg_1_arg_2;
 
 ivec4 textureGather_5ba85f() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm
index 94558f0..23d18b3 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_5ba85f "textureGather_5ba85f"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %31 = OpConstantNull %v3float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
@@ -90,8 +90,8 @@
       %arg_3 = OpVariable %_ptr_Function_v3float Function %31
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v3float %arg_3
          %32 = OpImageGather %v4int %36 %37 %int_1
diff --git a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl
index 44492db..422f73b 100644
--- a/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5ba85f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5ba85f();
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl
index db9b317..365927d 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5bd491();
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl
index a513df4..bd06b96 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5bd491()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl
index a513df4..bd06b96 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_5bd491()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl
index 033206e..a315f43 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_5bd491() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_5bd491() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm
index 5f21623..3e64df4 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_5bd491 "textureGather_5bd491"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -90,8 +90,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4uint %36 %37 %int_1
diff --git a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl
index a4887ee..5788b6a 100644
--- a/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/5bd491.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_5bd491();
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl
index 2358e1a..06593e9 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_6b7b74();
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl
index 6068c89..5ed1051 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_6b7b74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl
index 6068c89..5ed1051 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_6b7b74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl
index f2ace8d..b4e2428 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_6b7b74() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_6b7b74() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm
index f691f86..d4d39df 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_6b7b74 "textureGather_6b7b74"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %35 = OpConstantNull %uint
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl
index 735299d..79064ba 100644
--- a/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/6b7b74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_6b7b74();
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
index ec80306..8ddfac4 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_751f8a();
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl
index e67749a..8c18a35 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl
index e67749a..8c18a35 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_751f8a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm
index 3385f4a..16381cf 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_751f8a "textureGather_751f8a"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %48 = OpTypeFunction %void
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %int_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %38 = OpLoad %v3float %arg_3
          %39 = OpCompositeExtract %float %38 0
diff --git a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl
index 1c5eeeb..c9d7a95 100644
--- a/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/751f8a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_751f8a();
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl
index 0f492b9..8837774 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_788010();
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl
index 4535b87..71324eb 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_788010()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl
index 4535b87..71324eb 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_788010()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm
index fd1edd3..9286d46 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_788010 "textureGather_788010"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %36 = OpConstantNull %uint
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %42 = OpLoad %v3float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl
index fd94bcc..ff05a75 100644
--- a/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/788010.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_788010();
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl
index c98f2a5..969043a 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7c3828();
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl
index 66e5af9..54ba333 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl
index 66e5af9..54ba333 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7c3828()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl
index 45decdc..ae97ce7 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_7c3828() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_7c3828() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm
index 3227cfb..a3fd0fb 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_7c3828 "textureGather_7c3828"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
          %40 = OpConstantComposite %v2int %int_1 %int_1
@@ -92,8 +92,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4int %36 %37 %int_1 ConstOffset %40
diff --git a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl
index 1469322..d49fe65 100644
--- a/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7c3828.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7c3828();
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
index 8d2ced7..519f8cd 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7dd226();
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl
index eb1ae2c..dcdd76d 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl
index eb1ae2c..dcdd76d 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_7dd226()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm
index 21acf8b..68b7721 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_7dd226 "textureGather_7dd226"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
-         %34 = OpLoad %15 %arg_1
-         %35 = OpLoad %12 %arg_0
+         %34 = OpLoad %18 %arg_1
+         %35 = OpLoad %15 %arg_0
          %37 = OpSampledImage %36 %35 %34
          %38 = OpLoad %v3float %arg_2
          %39 = OpCompositeExtract %float %38 0
diff --git a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl
index 74ddb2b..f51ca5d 100644
--- a/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/7dd226.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_7dd226();
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl
index f9028c4..851b4b3 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_829357();
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl
index 0f6089b..e1b31af 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_829357()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl
index 0f6089b..e1b31af 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_829357()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm
index 5d93cce..61c5a20 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_829357 "textureGather_829357"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %uint_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %38 = OpLoad %v3float %arg_3
          %39 = OpCompositeExtract %float %38 0
diff --git a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl
index b50937a..8b77a7c 100644
--- a/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/829357.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_829357();
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl
index d8b4059..b085440 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_831549();
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl
index f615221..590a017 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_831549()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl
index f615221..590a017 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_831549()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl
index dd0dd9f..0463011 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_831549() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_831549() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm
index 1fb5600..ac4af2f 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_831549 "textureGather_831549"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %int_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl
index 883221e..f861f8f 100644
--- a/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/831549.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_831549();
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
index 1d6d2a5..8648d93 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8578bc();
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl
index a63bbbb..390c861 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl
index a63bbbb..390c861 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8578bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm
index ebb56f6..6ff6aae 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_8578bc "textureGather_8578bc"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %48 = OpTypeFunction %void
@@ -90,8 +90,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %uint_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %38 = OpLoad %v3float %arg_3
          %39 = OpCompositeExtract %float %38 0
diff --git a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl
index ac114ee..0ddf05b 100644
--- a/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8578bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8578bc();
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl
index 4ebefa7..300244a 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_89680f();
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl
index a90562c..34b8e76 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_89680f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl
index a90562c..34b8e76 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_89680f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl
index 71465fc..f4a8fe5 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_89680f() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usamplerCube arg_1_arg_2;
 
 uvec4 textureGather_89680f() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm
index 31dd8d8..1f7a26b 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_89680f "textureGather_89680f"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %31 = OpConstantNull %v3float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
@@ -88,8 +88,8 @@
       %arg_3 = OpVariable %_ptr_Function_v3float Function %31
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v3float %arg_3
          %32 = OpImageGather %v4uint %36 %37 %uint_1
diff --git a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl
index 41cfb45..53ca82a 100644
--- a/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/89680f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_89680f();
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl
index 5847ccf..e1bd805 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8b754c();
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl
index a4765d5..912ffed 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl
index a4765d5..912ffed 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8b754c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl
index c4fe6f3..19b0352 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_8b754c() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_8b754c() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm
index 542effc..e11246e 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_8b754c "textureGather_8b754c"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %35 = OpConstantNull %int
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl
index 855a007..b4d9b4f 100644
--- a/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8b754c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8b754c();
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl
index 92f7420..b94b00a 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8fae00();
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl
index 471f1f7..65d58d1 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8fae00()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl
index 471f1f7..65d58d1 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_8fae00()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl
index 6bb6d846..f06eac0 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_8fae00() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_8fae00() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm
index c585bb9..1d659cd 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_8fae00 "textureGather_8fae00"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
@@ -88,8 +88,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4uint %36 %37 %uint_1
diff --git a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl
index 8c6c800..f11ba75 100644
--- a/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/8fae00.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_8fae00();
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl
index 53f4dd4..c3ad418 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_92ea47();
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl
index 87fff8a..064283b 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_92ea47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl
index 87fff8a..064283b 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_92ea47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl
index 202464d..76b8adf 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_92ea47() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_92ea47() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm
index e9c2491..dfc314b 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_92ea47 "textureGather_92ea47"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %36 = OpConstantNull %int
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl
index 3b5e9f4..fb473bf 100644
--- a/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/92ea47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_92ea47();
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl
index 1ffadfd..def8642 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_986700();
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl
index 0b0b0e8..be4b92a 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_986700()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl
index 0b0b0e8..be4b92a 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_986700()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl
index 16d383a..948bae0 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_986700() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_1_arg_2;
 
 uvec4 textureGather_986700() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm
index 0b03742..a9a744f 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_986700 "textureGather_986700"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -92,8 +92,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4uint %36 %37 %uint_1 ConstOffset %42
diff --git a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl
index 7072a54..2c9a39e 100644
--- a/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/986700.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_986700();
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl
index 140bfcd..1c27659 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9a6358();
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl
index 2c0c397..1315b99e 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl
index 2c0c397..1315b99e 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9a6358()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl
index 8885841..ab0c927 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_9a6358() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_9a6358() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm
index d2b8c4f..4f710ae 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_9a6358 "textureGather_9a6358"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %int_0 = OpConstant %int 0
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -93,8 +93,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
-         %34 = OpLoad %15 %arg_1
-         %35 = OpLoad %12 %arg_0
+         %34 = OpLoad %18 %arg_1
+         %35 = OpLoad %15 %arg_0
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_2
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl
index bfc9a06..86fb43b 100644
--- a/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9a6358.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9a6358();
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl
index 7f96496..4122afb 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9ab41e();
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl
index 7bec9b6..6d4c322 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl
index 7bec9b6..6d4c322 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_9ab41e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl
index 85b17b8..73b5950 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_9ab41e() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_9ab41e() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm
index 63a479b..b5f2ba9 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_9ab41e "textureGather_9ab41e"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %35 = OpConstantNull %int
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl
index 9ccb441..2004672 100644
--- a/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/9ab41e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_9ab41e();
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl
index 6b020e8..b90c923 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a0372b();
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl
index 0989c02..f13a0ac 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a0372b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl
index 0989c02..f13a0ac 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a0372b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl
index b356953..48af69b 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_a0372b() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_a0372b() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm
index 2865198..cc37b34 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_a0372b "textureGather_a0372b"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %35 = OpConstantNull %uint
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl
index e96f251..30c36af 100644
--- a/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a0372b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a0372b();
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl
index 6d9408b..90c129f 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a68027();
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl
index cf9d848..c474d53 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a68027()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl
index cf9d848..c474d53 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_a68027()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl
index 66ead8e..208998a 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_a68027() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_a68027() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm
index da47db5..bc27749 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_a68027 "textureGather_a68027"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_0 = OpConstant %int 0
@@ -95,8 +95,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
-         %34 = OpLoad %15 %arg_1
-         %35 = OpLoad %12 %arg_0
+         %34 = OpLoad %18 %arg_1
+         %35 = OpLoad %15 %arg_0
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_2
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl
index a4387d7..fc123f8 100644
--- a/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/a68027.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_a68027();
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
index fce5b74..6b73ec9 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_aaf6bd();
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
index ff7a768..7deec42 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
index ff7a768..7deec42 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_aaf6bd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm
index 2e8c1ad..8a2c66d 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_aaf6bd "textureGather_aaf6bd"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %35 = OpConstantNull %int
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %41 = OpLoad %v3float %arg_3
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl
index ef2e358..483b0e1 100644
--- a/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/aaf6bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_aaf6bd();
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl
index b14df0e..1228e08 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_af55b3();
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl
index b599a45..1b2d297 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl
index b599a45..1b2d297 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_af55b3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl
index 91cbbfc..84b48eb 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_af55b3() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_af55b3() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm
index 5b0d9b5..a7f77e6 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_af55b3 "textureGather_af55b3"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
@@ -88,8 +88,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
-         %29 = OpLoad %15 %arg_2
-         %30 = OpLoad %12 %arg_1
+         %29 = OpLoad %18 %arg_2
+         %30 = OpLoad %15 %arg_1
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v2float %arg_3
          %28 = OpImageGather %v4float %32 %33 %int_1 ConstOffset %37
diff --git a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl
index 821e656..ff11729 100644
--- a/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/af55b3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_af55b3();
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl
index d1e7993..28b7841 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bb3ac5();
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
index d230050..0ffae40 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
index d230050..0ffae40 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bb3ac5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl
index f23e7f2..0aaa0e3 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_bb3ac5() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_bb3ac5() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm
index b11344b..5442246 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_bb3ac5 "textureGather_bb3ac5"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
@@ -90,8 +90,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4int %36 %37 %int_1
diff --git a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl
index 7956641..6d0cc9a 100644
--- a/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bb3ac5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bb3ac5();
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl
index 142214b..a087a9c 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bd33b6();
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl
index f93c386..dac17324 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl
index f93c386..dac17324 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_bd33b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl
index 891f12c..7026081 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_bd33b6() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_bd33b6() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm
index 457903e..fcbd868 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_bd33b6 "textureGather_bd33b6"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %36 = OpConstantNull %uint
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
       %int_1 = OpConstant %int 1
       %v2int = OpTypeVector %int 2
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl
index 3083651..e58fc2f 100644
--- a/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/bd33b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_bd33b6();
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl
index 05ad303..fb2e969 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_be276f();
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl
index 4f0e706..8708c90 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_be276f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl
index 4f0e706..8708c90 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_be276f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm
index 6548c0b..4d501c8 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_be276f "textureGather_be276f"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %35 = OpConstantNull %uint
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %41 = OpLoad %v3float %arg_3
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl
index 05eac57..7aefd6c 100644
--- a/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/be276f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_be276f();
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
index 1eb08fd..f488f02 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_c0640c();
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl
index 920bb54..972ae95 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl
index 920bb54..972ae95 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_c0640c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm
index b949691..8dd388b 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_c0640c "textureGather_c0640c"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %35 = OpConstantNull %int
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
 %_ptr_Function_v4int = OpTypePointer Function %v4int
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %41 = OpLoad %v3float %arg_3
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl
index 97a3b2b..6fb542d 100644
--- a/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/c0640c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_c0640c();
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl
index a6a7a46..cf711b5 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ccadde();
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl
index 14d879e..4d6b403 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl
index 14d879e..4d6b403 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ccadde()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl
index 8e82c57..9e1344a 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_ccadde() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_ccadde() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm
index 3492271..38d5cf2 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_ccadde "textureGather_ccadde"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4int = OpTypePointer Function %v4int
@@ -89,8 +89,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4int %36 %37 %uint_1
diff --git a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl
index 28c7eb55..22ef04b 100644
--- a/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ccadde.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ccadde();
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl
index 30d54fb..c0435c5 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ce5578();
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl
index 751b8c8..4bbd3bb 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ce5578()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl
index 751b8c8..4bbd3bb 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ce5578()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl
index 46e7553..231180c 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_ce5578() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_ce5578() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm
index 9d68b69..2fe4085 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_ce5578 "textureGather_ce5578"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %35 = OpConstantNull %uint
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl
index bbd4ffe..9468a68 100644
--- a/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ce5578.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ce5578();
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl
index 7bc545d..5f21085 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_cf9112();
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl
index 68ea3f0..30da8b3 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl
index 68ea3f0..30da8b3 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_cf9112()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl
index 3416957..1f59200 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_cf9112() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_cf9112() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm
index 03323b0..5f5da0b 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_cf9112 "textureGather_cf9112"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %36 = OpConstantNull %uint
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl
index cfecfa9..c73724d 100644
--- a/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/cf9112.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_cf9112();
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl
index 3a1a673..07e287f 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d1f187();
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl
index 80e8f50..fe9f1df 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d1f187()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl
index 80e8f50..fe9f1df 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d1f187()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl
index aaf1d08..e74d85e5 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_d1f187() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_d1f187() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm
index d210757..965c7e8 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d1f187 "textureGather_d1f187"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %36 = OpConstantNull %int
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %50 = OpConstantComposite %v2int %int_1 %int_1
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl
index ca19de7..9957ec0 100644
--- a/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d1f187.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d1f187();
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
index 8351788..95a790b 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d4b5c6();
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
index 261b15c..b4f9b0c 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d4b5c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
index 261b15c..b4f9b0c 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d4b5c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm
index 9ad20d0..897b1f9 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d4b5c6 "textureGather_d4b5c6"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %36 = OpConstantNull %int
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %42 = OpLoad %v3float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl
index 761c3ca..16fa98c 100644
--- a/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d4b5c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d4b5c6();
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl
index 20036eb..04d4cac 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d6507c();
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl
index d43cc26..36c56b3 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl
index d43cc26..36c56b3 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d6507c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl
index 0d9e354..3dde25c 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d6507c() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d6507c() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm
index f7f5005..a002d5f 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d6507c "textureGather_d6507c"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
         %int = OpTypeInt 32 1
@@ -88,8 +88,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
-         %29 = OpLoad %15 %arg_2
-         %30 = OpLoad %12 %arg_1
+         %29 = OpLoad %18 %arg_2
+         %30 = OpLoad %15 %arg_1
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v2float %arg_3
          %28 = OpImageGather %v4float %32 %33 %uint_1 ConstOffset %39
diff --git a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl
index 0861a27..8586236 100644
--- a/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d6507c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d6507c();
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl
index 38accbb..da51b52 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d8e958();
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl
index 090a3ac..bb2b462 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl
index 090a3ac..bb2b462 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d8e958()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl
index 78ddd45..a3a31aa 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d8e958() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_1_arg_2;
 
 vec4 textureGather_d8e958() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm
index 4b134c8..1930919 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d8e958 "textureGather_d8e958"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,22 +52,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %31 = OpTypeSampledImage %12
+         %31 = OpTypeSampledImage %15
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -84,8 +84,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %27
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
-         %29 = OpLoad %15 %arg_2
-         %30 = OpLoad %12 %arg_1
+         %29 = OpLoad %18 %arg_2
+         %30 = OpLoad %15 %arg_1
          %32 = OpSampledImage %31 %30 %29
          %33 = OpLoad %v2float %arg_3
          %28 = OpImageGather %v4float %32 %33 %uint_1
diff --git a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl
index 4f6487e..0d466b1 100644
--- a/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d8e958.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d8e958();
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl
index 2d3f344..19c642a 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d90605();
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl
index cf367e7..08a5673 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d90605()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl
index cf367e7..08a5673 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d90605()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl
index 69f73bd..f52e545 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_d90605() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGather_d90605() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm
index a427e77..0b49ad7 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGather_d90605 "textureGather_d90605"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %int_0 = OpConstant %int 0
       %v2int = OpTypeVector %int 2
@@ -95,8 +95,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
-         %34 = OpLoad %15 %arg_1
-         %35 = OpLoad %12 %arg_0
+         %34 = OpLoad %18 %arg_1
+         %35 = OpLoad %15 %arg_0
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_2
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl
index 61e9206..81cc2e0 100644
--- a/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d90605.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d90605();
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
index 63c9e3a..2130a08 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d98d59();
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl
index ef3e47d..d4e2b3d 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl
index ef3e47d..d4e2b3d 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_d98d59()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm
index 81c439c..ad76a69 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_d98d59 "textureGather_d98d59"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %int_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %38 = OpLoad %v3float %arg_3
          %39 = OpCompositeExtract %float %38 0
diff --git a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl
index 2eb6ae9..05b1012 100644
--- a/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/d98d59.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_d98d59();
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl
index 1bd4379..0b077ee 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_dc6661();
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl
index 93cdb36..0fdb50f 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl
index 93cdb36..0fdb50f 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_dc6661()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl
index 72d5c52..95717ad 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_dc6661() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_1_arg_2;
 
 ivec4 textureGather_dc6661() {
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm
index a5a4536..245f30e 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_dc6661 "textureGather_dc6661"
                OpName %arg_3 "arg_3"
                OpName %res "res"
@@ -33,14 +33,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,22 +56,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %28 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %31 = OpConstantNull %v2float
-         %35 = OpTypeSampledImage %16
+         %35 = OpTypeSampledImage %19
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
@@ -92,8 +92,8 @@
       %arg_3 = OpVariable %_ptr_Function_v2float Function %31
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
-         %33 = OpLoad %19 %arg_2
-         %34 = OpLoad %16 %arg_1
+         %33 = OpLoad %22 %arg_2
+         %34 = OpLoad %19 %arg_1
          %36 = OpSampledImage %35 %34 %33
          %37 = OpLoad %v2float %arg_3
          %32 = OpImageGather %v4int %36 %37 %uint_1 ConstOffset %42
diff --git a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl
index 63c3dfb..f304f9e 100644
--- a/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/dc6661.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_dc6661();
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
index 7343399..e2c7fae 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e2acac();
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl
index 2ea4892..45920af 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e2acac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl
index 2ea4892..45920af 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e2acac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm
index edab604..cb3a9b4 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_e2acac "textureGather_e2acac"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %35 = OpConstantNull %uint
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %uint_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %41 = OpLoad %v3float %arg_3
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl
index 16de7f7..4a726b4 100644
--- a/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e2acac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e2acac();
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl
index 140d513..0c75cb3 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e3165f();
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl
index 372fbfd..ffe5158 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e3165f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl
index 372fbfd..ffe5158 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e3165f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl
index bcd5b85..784a8bb 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_e3165f() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_1_arg_2;
 
 uvec4 textureGather_e3165f() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm
index dc33475..3df73e4 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_e3165f "textureGather_e3165f"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -76,7 +76,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %36 = OpConstantNull %int
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
      %uint_1 = OpConstant %uint 1
       %v2int = OpTypeVector %int 2
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %43 = OpLoad %v2float %arg_3
          %44 = OpCompositeExtract %float %43 0
diff --git a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl
index 5cfe779..1aa7938 100644
--- a/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e3165f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e3165f();
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl
index 8d52873..4e2e78f 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<i32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<i32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e9d390();
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl
index beae144..57d2ce0 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl
index beae144..57d2ce0 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_e9d390()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl
index 3086c4a..e0ca146 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_e9d390() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_1_arg_2;
 
 ivec4 textureGather_e9d390() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm
index 90ec57e..1b64a7b 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_e9d390 "textureGather_e9d390"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -57,15 +57,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4int
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %35 = OpConstantNull %int
-         %39 = OpTypeSampledImage %16
+         %39 = OpTypeSampledImage %19
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %49 = OpConstantComposite %v2int %int_1 %int_1
@@ -98,8 +98,8 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %37 = OpLoad %19 %arg_2
-         %38 = OpLoad %16 %arg_1
+         %37 = OpLoad %22 %arg_2
+         %38 = OpLoad %19 %arg_1
          %40 = OpSampledImage %39 %38 %37
          %42 = OpLoad %v2float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl
index 2beb662..c7c599e 100644
--- a/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/e9d390.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<i32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_e9d390();
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl
index 8286c44..58889b1 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1: texture_2d_array<f32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ea8eb4();
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
index a7e0cfc..ef5f1eb 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
index a7e0cfc..ef5f1eb 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_ea8eb4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl
index 403e4f9..30a4640 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_ea8eb4() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_1_arg_2;
 
 vec4 textureGather_ea8eb4() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm
index ed313d7..76c2012 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_ea8eb4 "textureGather_ea8eb4"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_1 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_2 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_2 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %36 = OpTypeSampledImage %12
+         %36 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -90,8 +90,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_3 %24
                OpStore %arg_4 %uint_1
-         %34 = OpLoad %15 %arg_2
-         %35 = OpLoad %12 %arg_1
+         %34 = OpLoad %18 %arg_2
+         %35 = OpLoad %15 %arg_1
          %37 = OpSampledImage %36 %35 %34
          %39 = OpLoad %v2float %arg_3
          %40 = OpCompositeExtract %float %39 0
diff --git a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl
index f1da605..fd99e3c 100644
--- a/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/ea8eb4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(1) var arg_1 : texture_2d_array<f32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_ea8eb4();
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
index 6e13479..05308cf 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1: texture_cube_array<u32>;
 @group(1) @binding(2) var arg_2: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<u32> = textureGather(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_f2c6e3();
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
index f416375..d69ab18 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_f2c6e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
index f416375..d69ab18 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_1 : register(t1, space1);
 SamplerState arg_2 : register(s2, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGather_f2c6e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm
index d12bbc8..e894407 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
                OpName %textureGather_f2c6e3 "textureGather_f2c6e3"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
-               OpDecorate %arg_2 DescriptorSet 1
-               OpDecorate %arg_2 Binding 2
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
+               OpDecorate %arg_2 DescriptorSet 1
+               OpDecorate %arg_2 Binding 2
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,15 +58,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_1 = OpVariable %_ptr_UniformConstant_16 UniformConstant
-         %19 = OpTypeSampler
-%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
-      %arg_2 = OpVariable %_ptr_UniformConstant_19 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_1 = OpVariable %_ptr_UniformConstant_19 UniformConstant
+         %22 = OpTypeSampler
+%_ptr_UniformConstant_22 = OpTypePointer UniformConstant %22
+      %arg_2 = OpVariable %_ptr_UniformConstant_22 UniformConstant
          %23 = OpTypeFunction %v4uint
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %36 = OpConstantNull %int
-         %40 = OpTypeSampledImage %16
+         %40 = OpTypeSampledImage %19
 %_ptr_Function_v4uint = OpTypePointer Function %v4uint
        %void = OpTypeVoid
          %52 = OpTypeFunction %void
@@ -96,8 +96,8 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_3 %28
                OpStore %arg_4 %int_1
-         %38 = OpLoad %19 %arg_2
-         %39 = OpLoad %16 %arg_1
+         %38 = OpLoad %22 %arg_2
+         %39 = OpLoad %19 %arg_1
          %41 = OpSampledImage %40 %39 %38
          %42 = OpLoad %v3float %arg_3
          %43 = OpCompositeExtract %float %42 0
diff --git a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl
index c264081..fe983e4 100644
--- a/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGather/f2c6e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(1) var arg_1 : texture_cube_array<u32>;
 
 @group(1) @binding(2) var arg_2 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGather_f2c6e3();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl
index 8e5a7bb..21681fc 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_144a9a();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
index e6595f4..a54f404 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
index e6595f4..a54f404 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_144a9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl
index c582ec5..1f78f90 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_144a9a() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_144a9a() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm
index 8e02ddd..4a344b7 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_144a9a "textureGatherCompare_144a9a"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl
index fc8020d..524018f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/144a9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_144a9a();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl
index 78371ab..e4ff86f 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_182fd4();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
index f2ebb8b..1bc3bb9 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
index f2ebb8b..1bc3bb9 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_182fd4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl
index 847c82d..46dcef4 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_182fd4() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_182fd4() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm
index bd07608..5a9a333 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_182fd4 "textureGatherCompare_182fd4"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -88,8 +88,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl
index eb3f6f7..90ddfd0 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/182fd4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_182fd4();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
index 91d960b..d478cb0 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_2e409c();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
index 632dbbb..aec39c0 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
index 632dbbb..aec39c0 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_2e409c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm
index 0030d4b..90efacc 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_2e409c "textureGatherCompare_2e409c"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl
index 267a363..edddac7 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/2e409c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_2e409c();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl
index 870aeea..311eda3 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_313add();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
index 3c65c3a..0c1543c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
index 3c65c3a..0c1543c 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_313add()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl
index d6354cf..1b76591 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_313add() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_313add() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm
index 564fc78..922272e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_313add "textureGatherCompare_313add"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl
index 312f66a..a698659 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/313add.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_313add();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
index c5cfa18..4561174 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_60d2d1();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
index e036c9a..d9a39f5 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
index e036c9a..d9a39f5 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_60d2d1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm
index ad2a64f..6cdfae3 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_60d2d1 "textureGatherCompare_60d2d1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -96,8 +96,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl
index 1cf86f7..e54ebf4 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/60d2d1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_60d2d1();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl
index 807c857..64c1cc9 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_6d9352();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
index 6b810c9..89ee9d7 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
index 6b810c9..89ee9d7 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_6d9352()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl
index a2866da..368ab3b 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_6d9352() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_6d9352() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm
index 2f3d036..c8e53ed 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_6d9352 "textureGatherCompare_6d9352"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -88,8 +88,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl
index 1173a1e..92f2dbf 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/6d9352.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_6d9352();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl
index 4d11f63..afbbdca 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_783e65();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
index c6a59fd..e9fab0e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
index c6a59fd..e9fab0e 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_783e65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl
index d9662bf..1d629d5 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_783e65() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_783e65() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm
index 687ce47..8b5e182 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_783e65 "textureGatherCompare_783e65"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl
index ff7339e..b31c2a2 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/783e65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_783e65();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl
index 16783d8..eccc7d4 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_b5bc43();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
index dc32220..def3a54 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
index dc32220..def3a54 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_b5bc43()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl
index 1812b16..b752426 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_b5bc43() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_b5bc43() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm
index 0dae3fb..62336a6 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_b5bc43 "textureGatherCompare_b5bc43"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl
index 0dc2200..66c73da 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/b5bc43.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_b5bc43();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl
index d90bb41..ec53953 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureGatherCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_f585cc();
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
index 07486e9..07cc742 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
index 07486e9..07cc742 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureGatherCompare_f585cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl
index c130bed..5f9ad84 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_f585cc() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 vec4 textureGatherCompare_f585cc() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm
index f122d41..b607396 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureGatherCompare_f585cc "textureGatherCompare_f585cc"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %49 = OpConstantComposite %v2int %int_1 %int_1
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl
index 63a7c4d..2493733 100644
--- a/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureGatherCompare/f585cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureGatherCompare_f585cc();
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl
index 1f6e009..dc8278b 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_012e11();
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.dxc.hlsl
index 51f7ec2..35d464d 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_012e11() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_012e11()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.fxc.hlsl
index 51f7ec2..35d464d 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_012e11() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_012e11()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.spvasm
index c9be547..58038f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_012e11 "textureLoad_012e11"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.wgsl
index 5d95957..f24fd7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/012e11.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
 
 fn textureLoad_012e11() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_012e11();
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl
index dc71ba4..887fd9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_019da0();
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl
index 96b2cca..c29e26d 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_019da0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl
index 96b2cca..c29e26d 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_019da0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_019da0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl
index 272e680..e1ede0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_019da0() {
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_019da0() {
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm
index 3a5e34d..a8d4475 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_019da0 "textureLoad_019da0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %33 = OpLoad %v3int %arg_1
          %34 = OpLoad %uint %arg_2
          %31 = OpImageFetch %v4float %32 %33 Lod %34
diff --git a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl
index 5ecb422..b7b7139 100644
--- a/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/019da0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_019da0() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_019da0();
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl
index 8f20a82..fa3e5e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_01cd01();
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.dxc.hlsl
index 6e14c74..2ffa463 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_01cd01() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_01cd01()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.fxc.hlsl
index 6e14c74..2ffa463 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_01cd01() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_01cd01()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl
index 3de9697..7de1ca1 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_01cd01() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_01cd01() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.spvasm
index a3dacb9..f98ac0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_01cd01 "textureLoad_01cd01"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.wgsl
index e11feeb..e9a102a 100644
--- a/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/01cd01.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_01cd01() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_01cd01();
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl
index b0353a9..18f6ca3 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_026217();
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl
index 0f5c6e4..08de5fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_026217() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_026217()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl
index 0f5c6e4..08de5fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_026217() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_026217()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl
index 566ee13..ad8e257 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_026217() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_026217() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm
index d23d871..3de3b0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_026217 "textureLoad_026217"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -94,7 +94,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2uint %arg_1
          %41 = OpCompositeExtract %uint %40 0
          %42 = OpCompositeExtract %uint %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl
index 9498e8a..ff4ce28 100644
--- a/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/026217.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_026217() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_026217();
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl
index 51d6833..e0b092b 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02c48d();
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.dxc.hlsl
index 36f5ad2..1f5d74f 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02c48d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02c48d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.fxc.hlsl
index 36f5ad2..1f5d74f 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02c48d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02c48d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.spvasm
index 9e91e23..fbaf18f 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_02c48d "textureLoad_02c48d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.wgsl
index 8861401..d7a005e 100644
--- a/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/02c48d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
 
 fn textureLoad_02c48d() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02c48d();
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl
index 49781b0..49684da 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02ef1f();
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.dxc.hlsl
index 5228504..5e91859 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02ef1f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02ef1f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.fxc.hlsl
index 5228504..5e91859 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_02ef1f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_02ef1f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl
index af2d1eb..45eab60 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_02ef1f() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_02ef1f() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.spvasm
index 03400c1..9f1865a 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_02ef1f "textureLoad_02ef1f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.wgsl
index cce450a..1624dde 100644
--- a/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/02ef1f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
 
 fn textureLoad_02ef1f() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_02ef1f();
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl
index e8c82a3..cce20e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_03e03e();
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.dxc.hlsl
index 825c2ee..18131c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_03e03e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_03e03e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.fxc.hlsl
index 825c2ee..18131c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_03e03e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_03e03e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.spvasm
index f4576cb..0f05c11 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_03e03e "textureLoad_03e03e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.wgsl
index 0919902..b98e38a 100644
--- a/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/03e03e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
 
 fn textureLoad_03e03e() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_03e03e();
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl
index 1094d68..c3b83f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_045ec9();
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.dxc.hlsl
index a7319b2..41f8184 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_045ec9() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_045ec9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.fxc.hlsl
index a7319b2..41f8184 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_045ec9() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_045ec9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl
index aad1678..d188471 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_045ec9() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_045ec9() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.spvasm
index 7c648c0..e4c36b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_045ec9 "textureLoad_045ec9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.wgsl
index 8a0c42a..fdfeabf 100644
--- a/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/045ec9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read>;
 
 fn textureLoad_045ec9() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_045ec9();
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl
index a835ee3..ed51bf2 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: u32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_04b911();
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl
index c7bc9a0..2839e45 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_04b911() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_04b911()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl
index c7bc9a0..2839e45 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_04b911() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_04b911()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl
index 67317d8..57daca9 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_04b911() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_04b911() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm
index 3fadf37..6bdcf38 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_04b911 "textureLoad_04b911"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -91,7 +91,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %36 = OpLoad %12 %arg_0
+         %36 = OpLoad %15 %arg_0
          %38 = OpLoad %v2uint %arg_1
          %39 = OpCompositeExtract %uint %38 0
          %40 = OpCompositeExtract %uint %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl
index 7eaef83..e470e4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/04b911.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_04b911() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_04b911();
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl
index 7eb6fae..72f82f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_050c33();
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.dxc.hlsl
index 2796051..9120f90 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_050c33() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_050c33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.fxc.hlsl
index 2796051..9120f90 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_050c33() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_050c33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.spvasm
index 4f2951d..a403570 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_050c33 "textureLoad_050c33"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.wgsl
index d14d3e1..3cf0cbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/050c33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read>;
 
 fn textureLoad_050c33() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_050c33();
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl
index 84b9d67..4765b55 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read_write>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_054350();
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.dxc.hlsl
index a194073..45b3099 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_054350() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_054350()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.fxc.hlsl
index a194073..45b3099 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_054350() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_054350()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.spvasm
index fa8201a..bce1789 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_054350 "textureLoad_054350"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.wgsl
index 08f7376..bdde604 100644
--- a/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/054350.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
 
 fn textureLoad_054350() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_054350();
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl
index 211f45f..3124cd9 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0674b1();
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.dxc.hlsl
index 0b8a899..06eb168 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_0674b1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0674b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.fxc.hlsl
index 0b8a899..06eb168 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_0674b1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0674b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl
index 0af71c5..53ae285 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_0674b1() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_0674b1() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.spvasm
index a9e5234..0fe307d 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_0674b1 "textureLoad_0674b1"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.wgsl
index a78e5df..6b5ea09 100644
--- a/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/0674b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read>;
 
 fn textureLoad_0674b1() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0674b1();
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl
index 20b4b27..4aa476e 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_06ac37();
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.dxc.hlsl
index fa64478..e56928b 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_06ac37() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_06ac37()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.fxc.hlsl
index fa64478..e56928b 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_06ac37() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_06ac37()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl
index b2e3e99..b750423 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_06ac37() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_06ac37() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.spvasm
index 4a45d3b..8a10782 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_06ac37 "textureLoad_06ac37"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.wgsl
index 5607a15..942332f 100644
--- a/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/06ac37.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_06ac37() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_06ac37();
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl
index 0233dce..b975412 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_072e26();
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.dxc.hlsl
index bafe1cf..5629519 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_072e26() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_072e26()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.fxc.hlsl
index bafe1cf..5629519 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_072e26() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_072e26()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl
index 0934570..4401c5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_072e26() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_072e26() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.spvasm
index e1695ea..b186640 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_072e26 "textureLoad_072e26"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.wgsl
index 2138460..5be450a 100644
--- a/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/072e26.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_072e26() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_072e26();
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl
index 786bca3..0058724 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_078bc4();
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.dxc.hlsl
index b108480..039d774 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_078bc4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_078bc4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.fxc.hlsl
index b108480..039d774 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_078bc4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_078bc4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl
index 7d2e95c..829ccc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_078bc4() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_078bc4() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.spvasm
index ab71a90..d8abec4 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_078bc4 "textureLoad_078bc4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.wgsl
index 364cf5d..316dae7 100644
--- a/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/078bc4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read>;
 
 fn textureLoad_078bc4() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_078bc4();
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl
index 6c07c0d..dd5da62 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0b515a();
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.dxc.hlsl
index 017ce7e..b17071f 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_0b515a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0b515a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.fxc.hlsl
index 017ce7e..b17071f 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_0b515a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0b515a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.spvasm
index 0df09f5..fea8d28 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_0b515a "textureLoad_0b515a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.wgsl
index dd7b651..693707b 100644
--- a/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/0b515a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_0b515a() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0b515a();
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl
index 84be26a..09ae1d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: u32, level: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0cb698();
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.dxc.hlsl
index a6aedbf..2e322d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_0cb698() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.fxc.hlsl
index a6aedbf..2e322d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_0cb698() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_0cb698()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.glsl
index c956bcf..0831f21 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_0cb698() {
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_0cb698() {
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.spvasm
index 1cb19af..d7e3829 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_0cb698 "textureLoad_0cb698"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %uint %arg_1
          %32 = OpLoad %uint %arg_2
          %29 = OpImageFetch %v4int %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.wgsl
index 970c83b..5fc71f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/0cb698.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_0cb698() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_0cb698();
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl
index 6277a3f..7bbe8a1 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_10db82();
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.dxc.hlsl
index 2c902cb..cb6084f 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_10db82() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_10db82()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.fxc.hlsl
index 2c902cb..cb6084f 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_10db82() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_10db82()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl
index 3d961bd..e436cab 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_10db82() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_10db82() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.spvasm
index 76d383c..b559a22 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_10db82 "textureLoad_10db82"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.wgsl
index 6f6316c..17941e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/10db82.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_10db82() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_10db82();
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl
index c26b18c..a739e16 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_126466();
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.dxc.hlsl
index dc23ec1..4faaf3c 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_126466() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_126466()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.fxc.hlsl
index dc23ec1..4faaf3c 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_126466() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_126466()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.spvasm
index 0a12ca9..8153537 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_126466 "textureLoad_126466"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.wgsl
index 97d6de1..1105d87 100644
--- a/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/126466.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
 
 fn textureLoad_126466() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_126466();
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl
index 0c1e8cc..8ce7ac5 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_127e12();
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.dxc.hlsl
index 47bec74..d9ce982 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_127e12() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_127e12()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.fxc.hlsl
index 47bec74..d9ce982 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_127e12() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_127e12()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl
index 1f29670..cb1bea4 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_127e12() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_127e12() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.spvasm
index 534736e..9ab0c01 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_127e12 "textureLoad_127e12"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.wgsl
index d98f0bd..a30d8a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/127e12.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_127e12() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_127e12();
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl
index 8c40cc2..4fc88fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: u32, level: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1373dc();
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.dxc.hlsl
index 028990a..5f1d987 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1373dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.fxc.hlsl
index 028990a..5f1d987 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1373dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1373dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.glsl
index d0ca833..54dd631 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_1373dc() {
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_1373dc() {
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.spvasm
index 83d3a87..1bb7fdb 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1373dc "textureLoad_1373dc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %uint %arg_1
          %32 = OpLoad %int %arg_2
          %29 = OpImageFetch %v4float %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.wgsl
index 34f7881..6124ce1 100644
--- a/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1373dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_1373dc() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1373dc();
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl
index 449beb8..b7bd274 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13d539();
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.dxc.hlsl
index 8e3c908..a578028 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_13d539() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13d539()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.fxc.hlsl
index 8e3c908..a578028 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_13d539() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13d539()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl
index 3bf604c..f4c71d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_13d539() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_13d539() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.spvasm
index b8eb646..37c8997 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_13d539 "textureLoad_13d539"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.wgsl
index e7f71a7..2e2b282 100644
--- a/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/13d539.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_13d539() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13d539();
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl
index 41a5b9e..a8f2ce1 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13e90c();
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.dxc.hlsl
index 05ed870..5a356ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_13e90c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13e90c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.fxc.hlsl
index 05ed870..5a356ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_13e90c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_13e90c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl
index b843d48..7ec82cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_13e90c() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_13e90c() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.spvasm
index a16ef2a..c3997df 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_13e90c "textureLoad_13e90c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.wgsl
index 9738ba1..3cb9a59 100644
--- a/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/13e90c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_13e90c() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_13e90c();
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl
index a4b926c..415824f 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_143d84();
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.dxc.hlsl
index aadce60..b69a1ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_143d84() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_143d84()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.fxc.hlsl
index aadce60..b69a1ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_143d84() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_143d84()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.spvasm
index 6af43b2..b83dc33 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_143d84 "textureLoad_143d84"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.wgsl
index 049cc17..c5f5122 100644
--- a/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/143d84.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_143d84() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_143d84();
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl
index 871c6d9..3527f4d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1471b8();
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.dxc.hlsl
index cb9d9f5..a275074 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1471b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1471b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.fxc.hlsl
index cb9d9f5..a275074 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1471b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1471b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl
index 8992ab2..8916b52 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1471b8() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1471b8() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.spvasm
index 9821491..c902808 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1471b8 "textureLoad_1471b8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.wgsl
index 8b0bad4..fe62cbd 100644
--- a/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1471b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_1471b8() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1471b8();
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl
index 0b2a341..cac7575 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_14cc4c();
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.dxc.hlsl
index 011618a..440b068 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_14cc4c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_14cc4c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.fxc.hlsl
index 011618a..440b068 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_14cc4c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_14cc4c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.spvasm
index 409add8..212e86e 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_14cc4c "textureLoad_14cc4c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.wgsl
index 823067b..d9a7d0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/14cc4c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
 
 fn textureLoad_14cc4c() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_14cc4c();
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl
index 3dbfefa..23cb790 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1561a7();
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.dxc.hlsl
index 0d5c33d..8b6eddf 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1561a7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1561a7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.fxc.hlsl
index 0d5c33d..8b6eddf 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1561a7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1561a7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl
index 41896c0..c7bfbfe 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1561a7() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1561a7() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.spvasm
index 20dee3e..dba94df 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1561a7 "textureLoad_1561a7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.wgsl
index 93233b1..bbfb2b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1561a7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read>;
 
 fn textureLoad_1561a7() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1561a7();
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl
index 8cd616a..4391b74 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_15e675();
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.dxc.hlsl
index 1f08e6c..ad15a23 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_15e675() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_15e675()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.fxc.hlsl
index 1f08e6c..ad15a23 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_15e675() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_15e675()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl
index 999ea26..c7625e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_15e675() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_15e675() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.spvasm
index 46a52b8..7b1914b 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_15e675 "textureLoad_15e675"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.wgsl
index 365fe0a..f825389 100644
--- a/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/15e675.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_15e675() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_15e675();
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl
index dec2f74..f7d23db 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1619bf();
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.dxc.hlsl
index 47bc972..ecf509d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1619bf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1619bf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.fxc.hlsl
index 47bc972..ecf509d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1619bf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1619bf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl
index 6263a34..534aeb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_1619bf() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_1619bf() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.spvasm
index d9a1dc1..eac2eeb 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1619bf "textureLoad_1619bf"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.wgsl
index b3e651e..d947be8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1619bf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_1619bf() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1619bf();
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl
index edf43a7..484cb30 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_168dc8();
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl
index 6a0b048..9a018d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_168dc8() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl
index 6a0b048..9a018d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_168dc8() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_168dc8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl
index 40ded09..0046540 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_168dc8() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_168dc8() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm
index 3a08a40..4ef9aca 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_168dc8 "textureLoad_168dc8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -92,7 +92,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %36 = OpLoad %16 %arg_0
+         %36 = OpLoad %19 %arg_0
          %38 = OpLoad %v2uint %arg_1
          %39 = OpCompositeExtract %uint %38 0
          %40 = OpCompositeExtract %uint %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl
index 3c6fa7f..38c6f66 100644
--- a/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/168dc8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_168dc8() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_168dc8();
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl
index 6511fe4..b271887 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_170593();
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.dxc.hlsl
index 0a57c2d..3a6ba13 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_170593() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_170593()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.fxc.hlsl
index 0a57c2d..3a6ba13 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_170593() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_170593()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.spvasm
index 32fedca..b7cf694 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_170593 "textureLoad_170593"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.wgsl
index 1296e92..796a21f 100644
--- a/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/170593.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
 
 fn textureLoad_170593() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_170593();
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl
index 7993151..2db3c7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read_write>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_17095b();
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.dxc.hlsl
index c535af7..d39551e 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_17095b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_17095b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.fxc.hlsl
index c535af7..d39551e 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_17095b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_17095b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.spvasm
index 3df712f..daaff25 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_17095b "textureLoad_17095b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.wgsl
index 6f0a525..e7bc814 100644
--- a/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/17095b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
 
 fn textureLoad_17095b() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_17095b();
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl
index 244e500..cc2cb41 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_18ac11();
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.dxc.hlsl
index bb57c4c..ce27b21 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_18ac11() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_18ac11()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.fxc.hlsl
index bb57c4c..ce27b21 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_18ac11() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_18ac11()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.spvasm
index 10facdc..ae2e9cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_18ac11 "textureLoad_18ac11"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.wgsl
index 7a291cd..f7ae9ab 100644
--- a/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/18ac11.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read>;
 
 fn textureLoad_18ac11() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_18ac11();
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl
index d2abdc9..651471b 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19cf87();
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl
index 937ec31..d8de7c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_19cf87() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl
index 937ec31..d8de7c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_19cf87() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_19cf87()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl
index 557b2f1..bd4f142 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_19cf87() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_19cf87() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm
index 91ff74f..3862f42 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_19cf87 "textureLoad_19cf87"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %31 = OpLoad %12 %arg_0
+         %31 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpLoad %int %arg_2
          %30 = OpImageFetch %v4float %31 %32 Lod %33
diff --git a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl
index 5d5174c..4c9a87c 100644
--- a/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19cf87.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_19cf87() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19cf87();
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl
index 3f57594..3cc4054 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19d6be();
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.dxc.hlsl
index f1d6a91..9b7aa11 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_19d6be() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19d6be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.fxc.hlsl
index f1d6a91..9b7aa11 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_19d6be() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19d6be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl
index a490c19..0c0e3ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_19d6be() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_19d6be() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.spvasm
index 811649e..c40a42d 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_19d6be "textureLoad_19d6be"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.wgsl
index 64c63dc..b4055a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19d6be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
 
 fn textureLoad_19d6be() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19d6be();
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl
index 3f9e83d..3cbf329 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19e5ca();
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.dxc.hlsl
index 3241531..473d013 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_19e5ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19e5ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.fxc.hlsl
index 3241531..473d013 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_19e5ca() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_19e5ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.spvasm
index 231a837..6571aeb 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_19e5ca "textureLoad_19e5ca"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.wgsl
index 30d9843..166b59a 100644
--- a/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/19e5ca.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_19e5ca() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_19e5ca();
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl
index 327a072..9144434 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a062f();
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.dxc.hlsl
index 5eef435..213fafc 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1a062f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a062f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.fxc.hlsl
index 5eef435..213fafc 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1a062f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a062f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl
index fbd84f4..7a45d59 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_1a062f() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_1a062f() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.spvasm
index ff58a3c..7672a8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1a062f "textureLoad_1a062f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.wgsl
index 2b13079..427ee87 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a062f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_1a062f() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a062f();
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl
index eb8f5d8..0a0ea0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a8452();
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.dxc.hlsl
index a974085..c67fc25 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1a8452() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a8452()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.fxc.hlsl
index a974085..c67fc25 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1a8452() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1a8452()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl
index 942a15d..5df04d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1a8452() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_1a8452() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.spvasm
index 10d27ff..211c763 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1a8452 "textureLoad_1a8452"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.wgsl
index 2a85a49..3f724ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1a8452.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read>;
 
 fn textureLoad_1a8452() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1a8452();
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl
index 0c0c0c8..7152159 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1aa950();
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.dxc.hlsl
index 3f1ae2d..3fe43f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1aa950() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1aa950()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.fxc.hlsl
index 3f1ae2d..3fe43f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_1aa950() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1aa950()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl
index e89b587..5453a4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1aa950() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_1aa950() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.spvasm
index 7476279..9117af1 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1aa950 "textureLoad_1aa950"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.wgsl
index 6537e3f..012a073 100644
--- a/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1aa950.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_1aa950() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1aa950();
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl
index abdc0f9..9e2684d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b051f();
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl
index 43512e5..c02467a 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b051f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b051f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl
index 43512e5..c02467a 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b051f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b051f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl
index 54c2d19..ea9cacf 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_1b051f() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_1b051f() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm
index 67eb47a..490b2a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1b051f "textureLoad_1b051f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -92,7 +92,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %36 = OpLoad %16 %arg_0
+         %36 = OpLoad %19 %arg_0
          %38 = OpLoad %v2int %arg_1
          %39 = OpCompositeExtract %int %38 0
          %40 = OpCompositeExtract %int %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl
index ff7749b..29ef6dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b051f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_1b051f() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b051f();
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl
index 7061165..8161422 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b4332();
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.dxc.hlsl
index e6aea6f..12f3d9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_1b4332() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b4332()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.fxc.hlsl
index e6aea6f..12f3d9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_1b4332() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b4332()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl
index 4336581..6e8d811 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_1b4332() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage3D arg_0;
 uvec4 textureLoad_1b4332() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.spvasm
index 7ed0330..18a30784 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1b4332 "textureLoad_1b4332"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.wgsl
index 963957e..ffd9a72 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b4332.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read_write>;
 
 fn textureLoad_1b4332() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b4332();
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl
index 393aa6d..81925d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: i32, level: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b8588();
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.dxc.hlsl
index 820037e..30c3dc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b8588() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b8588()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.fxc.hlsl
index 820037e..30c3dc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1b8588() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1b8588()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.glsl
index 5eb5fb8..709a76a 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_1b8588() {
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_1b8588() {
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.spvasm
index 1585a7a..974e95d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1b8588 "textureLoad_1b8588"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
                OpStore %arg_2 %int_1
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %int %arg_1
          %32 = OpLoad %int %arg_2
          %29 = OpImageFetch %v4uint %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.wgsl
index 325f01f..06abcd8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1b8588.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_1b8588() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1b8588();
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl
index eaf794b..d2306e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bc5ab();
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl
index 76a80f4..49fabff 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1bc5ab() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bc5ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl
index 76a80f4..49fabff 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1bc5ab() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bc5ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.spvasm
index 030bdbb..00d8fff 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1bc5ab "textureLoad_1bc5ab"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.wgsl
index d19f16b..b50dcc7 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bc5ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
 
 fn textureLoad_1bc5ab() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bc5ab();
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl
index 7b06232..95d8b38 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 
 // fn textureLoad(texture: texture_external, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bfdfb();
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
index b3ce658..d23f6a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.dxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -122,8 +123,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
index b3ce658..d23f6a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.fxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -122,8 +123,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1bfdfb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
index 13e3dd8..96b1b32 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.glsl
@@ -72,6 +72,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -109,10 +113,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -198,6 +198,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -235,10 +239,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
index 112e98f..e38328b 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.spvasm
@@ -46,10 +46,10 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_ftou "tint_ftou"
                OpName %v "v"
                OpName %gammaCorrection "gammaCorrection"
@@ -130,12 +130,12 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 2
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %ExternalTextureParams 0 Offset 0
                OpMemberDecorate %ExternalTextureParams 1 Offset 4
                OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -183,10 +183,10 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
          %28 = OpTypeFunction %v2uint %v2float
 %float_4_29496704e_09 = OpConstant %float 4.29496704e+09
          %34 = OpConstantComposite %v2float %float_4_29496704e_09 %float_4_29496704e_09
diff --git a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl
index 09512b6..4942df4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1bfdfb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_1bfdfb() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1bfdfb();
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl
index 8f17939..bb0a463 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1c562a();
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl
index 3431268..cece002 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1c562a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1c562a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl
index 3431268..cece002 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_1c562a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1c562a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl
index 53ebfd8..68d5c47 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_1c562a() {
   uvec3 arg_1 = uvec3(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_1c562a() {
   uvec3 arg_1 = uvec3(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm
index a12fe41..bb845df 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1c562a "textureLoad_1c562a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %v3uint %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4uint %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl
index 6f75c9e..3b472c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1c562a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_1c562a() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1c562a();
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl
index 7d85dde..7dbd83d 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read_write>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1d43ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.dxc.hlsl
index f6043b4..53a61fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1d43ae() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1d43ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.fxc.hlsl
index f6043b4..53a61fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_1d43ae() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1d43ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.spvasm
index b96b7cf..e9130b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1d43ae "textureLoad_1d43ae"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.wgsl
index 428c129..32136d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1d43ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
 
 fn textureLoad_1d43ae() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1d43ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl
index 69c7228..e67ad3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1e6baa();
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.dxc.hlsl
index 0366d9d..9b874ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1e6baa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1e6baa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.fxc.hlsl
index 0366d9d..9b874ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1e6baa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1e6baa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.spvasm
index c3c3204..3bbc7ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1e6baa "textureLoad_1e6baa"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.wgsl
index 9a20daa..e32afe1 100644
--- a/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1e6baa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
 
 fn textureLoad_1e6baa() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1e6baa();
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl
index 5f68a68..f80eb17 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1eb93f();
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.dxc.hlsl
index 1ea7f7e..bc162ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1eb93f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1eb93f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.fxc.hlsl
index 1ea7f7e..bc162ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1eb93f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1eb93f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.spvasm
index f9d034d..3ab4447 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1eb93f "textureLoad_1eb93f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.wgsl
index 51b2f1e..ec309b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1eb93f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read>;
 
 fn textureLoad_1eb93f() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1eb93f();
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl
index b4ff973..643d050 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<i32>, level: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1f2016();
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl
index 4826cbe..ea19221 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1f2016() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl
index 4826cbe..ea19221 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_1f2016() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1f2016()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl
index 0f62199..41c7262 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_1f2016() {
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_1f2016() {
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm
index bd361f6..9fdf239 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1f2016 "textureLoad_1f2016"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %v3int %arg_1
          %32 = OpLoad %int %arg_2
          %29 = OpImageFetch %v4float %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl
index 1cabba6..4f251ea 100644
--- a/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1f2016.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_1f2016() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1f2016();
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl
index 3e33563..4a790fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1fde63();
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.dxc.hlsl
index 121df93..0e067bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1fde63() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1fde63()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.fxc.hlsl
index 121df93..0e067bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_1fde63() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_1fde63()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.spvasm
index 3049b95..194ec40 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_1fde63 "textureLoad_1fde63"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.wgsl
index 1bdd940..a883387 100644
--- a/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/1fde63.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read_write>;
 
 fn textureLoad_1fde63() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_1fde63();
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl
index fb314d6..f9572af 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_206a08();
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.dxc.hlsl
index 2989b1c..f69722d 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_206a08() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_206a08()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.fxc.hlsl
index 2989b1c..f69722d 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_206a08() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_206a08()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl
index 6caa880..9c969f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_206a08() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_206a08() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.spvasm
index 6b38667..a7e0816 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_206a08 "textureLoad_206a08"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.wgsl
index 551f670..e829185 100644
--- a/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/206a08.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read>;
 
 fn textureLoad_206a08() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_206a08();
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl
index 0c51e6f..c270970 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_20fa2f();
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.dxc.hlsl
index 827f2ff..7b2b665 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_20fa2f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_20fa2f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.fxc.hlsl
index 827f2ff..7b2b665 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_20fa2f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_20fa2f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.spvasm
index 254756e..c133d9d 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_20fa2f "textureLoad_20fa2f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.wgsl
index 886d070..14b68b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/20fa2f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_20fa2f() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_20fa2f();
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl
index 0673572..181ae14 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: u32, level: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_216c37();
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.dxc.hlsl
index 1b95ea1..61a9935 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_216c37() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_216c37()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.fxc.hlsl
index 1b95ea1..61a9935 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_216c37() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_216c37()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.glsl
index 80dfb9f..e97a785 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_216c37() {
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_216c37() {
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.spvasm
index 7eab6b4..349437d 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_216c37 "textureLoad_216c37"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %uint %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4uint %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.wgsl
index b866220..0f68fa1 100644
--- a/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/216c37.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_216c37() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_216c37();
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl
index 7076469..7f06bb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_21d1c4();
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
index 4b80e74..4df805a 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_21d1c4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
index 4b80e74..4df805a 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_21d1c4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_21d1c4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl
index ffcafac..2ccf405 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_21d1c4() {
   uvec3 arg_1 = uvec3(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_21d1c4() {
   uvec3 arg_1 = uvec3(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm
index 4da2c49..e48eb2c 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_21d1c4 "textureLoad_21d1c4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -82,7 +82,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %32 = OpLoad %uint %arg_2
          %29 = OpImageFetch %v4float %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl
index d7e8fb0..b584ec9 100644
--- a/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/21d1c4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_21d1c4() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_21d1c4();
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl
index 432e658..573fed1 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_223246();
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl
index 10b3ede..31e5b2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_223246() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_223246()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl
index 10b3ede..31e5b2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_223246() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_223246()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl
index 4d13acc..460477c 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_223246() {
   uvec3 arg_1 = uvec3(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_223246() {
   uvec3 arg_1 = uvec3(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm
index 3b9f0fc..4d8fedf 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_223246 "textureLoad_223246"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v3uint %arg_1
          %37 = OpLoad %int %arg_2
          %34 = OpImageFetch %v4int %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl
index a996e76..1bd6bdb 100644
--- a/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/223246.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_223246() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_223246();
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl
index 7a3ecfc..27a20a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_22e963();
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.dxc.hlsl
index 55b3550..5144bb2 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_22e963() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_22e963()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.fxc.hlsl
index 55b3550..5144bb2 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_22e963() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_22e963()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl
index da3f4bd..4fb4898 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_22e963() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_22e963() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.spvasm
index 74ccc16..27a089f 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_22e963 "textureLoad_22e963"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.wgsl
index 4c5f75d..c609f7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/22e963.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_22e963() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_22e963();
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl
index ebdc05e..3fcf8f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23007a();
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.dxc.hlsl
index 182687f..2ec86a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_23007a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23007a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.fxc.hlsl
index 182687f..2ec86a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_23007a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23007a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.spvasm
index 9cb536d..d5ba806 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_23007a "textureLoad_23007a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.wgsl
index f18e4cf..e1e18fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/23007a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_23007a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23007a();
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl
index 7dc54d6..560d48e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2363be();
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl
index 79aecbc..2ae5662 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2363be() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl
index 79aecbc..2ae5662 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2363be() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2363be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl
index 14a6670..8f0c06d 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_2363be() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_2363be() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm
index 52ccaa1..1658ab2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2363be "textureLoad_2363be"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -94,7 +94,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2uint %arg_1
          %41 = OpCompositeExtract %uint %40 0
          %42 = OpCompositeExtract %uint %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl
index cc93ddd..bd2b1df 100644
--- a/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2363be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_2363be() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2363be();
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl
index 822c06f..d69d4c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23ff89();
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.dxc.hlsl
index f325fd1..0bba510 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_23ff89() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23ff89()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.fxc.hlsl
index f325fd1..0bba510 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_23ff89() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_23ff89()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl
index ef2724a..41fc457 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_23ff89() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_23ff89() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.spvasm
index d5a2a6e..f901c99 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_23ff89 "textureLoad_23ff89"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.wgsl
index de55656..05ace2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/23ff89.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_23ff89() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_23ff89();
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl
index 0021897..257dd32 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_25b67f();
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.dxc.hlsl
index 016d555..a0dc2ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_25b67f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_25b67f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.fxc.hlsl
index 016d555..a0dc2ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_25b67f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_25b67f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.spvasm
index 65a55e3..315d241 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_25b67f "textureLoad_25b67f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.wgsl
index c8765f2..b50515c 100644
--- a/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/25b67f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
 
 fn textureLoad_25b67f() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_25b67f();
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl
index 289a2db..9ad57ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26b8f6();
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.dxc.hlsl
index b48ebc5..7e02770 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_26b8f6() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26b8f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.fxc.hlsl
index b48ebc5..7e02770 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_26b8f6() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26b8f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.spvasm
index 6076fc5..d6ddf58 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_26b8f6 "textureLoad_26b8f6"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.wgsl
index 2514700..9e9bd5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26b8f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
 
 fn textureLoad_26b8f6() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26b8f6();
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl
index 0d472bb..06c7a55 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26c4f8();
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.dxc.hlsl
index 02bb369..68b7a52 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_26c4f8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26c4f8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.fxc.hlsl
index 02bb369..68b7a52 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_26c4f8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26c4f8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl
index 2595f57..aa294dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_26c4f8() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_26c4f8() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.spvasm
index b8e6d04..352a015 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_26c4f8 "textureLoad_26c4f8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.wgsl
index e694962..a770fa2 100644
--- a/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26c4f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read>;
 
 fn textureLoad_26c4f8() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26c4f8();
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl
index e3390cd..f874b30e 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26d7f1();
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.dxc.hlsl
index 2791451..af5a1cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_26d7f1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26d7f1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.fxc.hlsl
index 2791451..af5a1cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_26d7f1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_26d7f1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.spvasm
index f99710d..c4a2c9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_26d7f1 "textureLoad_26d7f1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -91,7 +91,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.wgsl
index a860a17..40575a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/26d7f1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_26d7f1() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_26d7f1();
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl
index b48cf77..e6d97e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_272e7a();
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.dxc.hlsl
index 2eff7e6..1f9567d 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_272e7a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_272e7a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.fxc.hlsl
index 2eff7e6..1f9567d 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_272e7a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_272e7a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl
index 74a08b3..cf3b25b 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_272e7a() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_272e7a() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.spvasm
index 633def2..91a3776 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_272e7a "textureLoad_272e7a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.wgsl
index fd4561b..d0be533 100644
--- a/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/272e7a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
 
 fn textureLoad_272e7a() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_272e7a();
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl
index 457f41a..b8328aa 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read>, coords: u32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276643();
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.dxc.hlsl
index 567cfc0..8627149 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_276643() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276643()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.fxc.hlsl
index 567cfc0..8627149 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_276643() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276643()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.spvasm
index f92c1a4..90018d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_276643 "textureLoad_276643"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.wgsl
index bfeb309..bee37cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/276643.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read>;
 
 fn textureLoad_276643() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276643();
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl
index 6d43e22..b19eddd 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276a2c();
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.dxc.hlsl
index e97d3f9..4b02e9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_276a2c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276a2c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.fxc.hlsl
index e97d3f9..4b02e9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_276a2c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_276a2c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl
index 503579b..588c7b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_276a2c() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_276a2c() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.spvasm
index 753e1fe..a22c81e 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_276a2c "textureLoad_276a2c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.wgsl
index b00a1b2..8cd01d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/276a2c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read>;
 
 fn textureLoad_276a2c() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_276a2c();
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl
index df4b73e..c336abb 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2887d7();
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.dxc.hlsl
index 8f3a362..5332dfd 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2887d7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2887d7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.fxc.hlsl
index 8f3a362..5332dfd 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2887d7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2887d7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl
index a8108ea..8c63cbb 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_2887d7() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_2887d7() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.spvasm
index 6367c6c..7bb97ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2887d7 "textureLoad_2887d7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.wgsl
index 9032feb..9a76860 100644
--- a/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2887d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read>;
 
 fn textureLoad_2887d7() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2887d7();
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl
index 64e847d..64671dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2a82d9();
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.dxc.hlsl
index 7e459e8..3cbc67e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2a82d9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2a82d9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.fxc.hlsl
index 7e459e8..3cbc67e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2a82d9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2a82d9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl
index 846fc68..d62e24a 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_2a82d9() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_2a82d9() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.spvasm
index 0fbded9..aa71003 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2a82d9 "textureLoad_2a82d9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.wgsl
index 9440aa8..5c4265c 100644
--- a/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2a82d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_2a82d9() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2a82d9();
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl
index 6cfc47c..a51b821 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2ae485();
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.dxc.hlsl
index 94dc42d..4cedf15 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2ae485() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2ae485()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.fxc.hlsl
index 94dc42d..4cedf15 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2ae485() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2ae485()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl
index 3ce90e3..76826f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2ae485() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2ae485() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.spvasm
index 7624b39..9a9d376 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2ae485 "textureLoad_2ae485"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.wgsl
index 7cd85d5..06dbabf 100644
--- a/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2ae485.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read>;
 
 fn textureLoad_2ae485() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2ae485();
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl
index 3fcc3a7..27a85af 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2c72ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.dxc.hlsl
index 8dae808..b224e68 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2c72ae() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2c72ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.fxc.hlsl
index 8dae808..b224e68 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2c72ae() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2c72ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl
index 86e6830..8f3b24b 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2c72ae() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_2c72ae() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.spvasm
index 40cb0ce..434cf3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2c72ae "textureLoad_2c72ae"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.wgsl
index 80de413..611f6b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2c72ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read>;
 
 fn textureLoad_2c72ae() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2c72ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl
index 14bc6e4..ce38c34 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2cee30();
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.dxc.hlsl
index 20ea7bb..50d226a 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2cee30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2cee30()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.fxc.hlsl
index 20ea7bb..50d226a 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2cee30() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2cee30()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.spvasm
index 8c52d92..04a3803 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2cee30 "textureLoad_2cee30"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.wgsl
index 9e3b932..f1145b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2cee30.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_2cee30() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2cee30();
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl
index 12d231d..30351b79 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d479c();
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl
index 300d0a7..4401682 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2d479c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl
index 300d0a7..4401682 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2d479c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d479c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl
index 2f707f8..29deae7 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_2d479c() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_2d479c() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm
index 78b64b8..1c83fbc 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2d479c "textureLoad_2d479c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %33 = OpLoad %v2int %arg_1
          %34 = OpLoad %uint %arg_2
          %31 = OpImageFetch %v4float %32 %33 Lod %34
diff --git a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl
index 3efe23d..7238f71 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d479c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_2d479c() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d479c();
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl
index 36d7b22..d5a0999 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d6cf7();
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl
index 9c7e40e..afb95b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2d6cf7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d6cf7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl
index 9c7e40e..afb95b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_2d6cf7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2d6cf7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.spvasm
index 8994fcb..dc93159 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2d6cf7 "textureLoad_2d6cf7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.wgsl
index ee32f6a..df95376 100644
--- a/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2d6cf7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read>;
 
 fn textureLoad_2d6cf7() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2d6cf7();
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl
index 8d4cbd1..0a6767b 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2dbfc2();
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl
index c250ae5..5796ccb 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_2dbfc2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2dbfc2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl
index c250ae5..5796ccb 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_2dbfc2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2dbfc2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.spvasm
index 1b11b10..0424d77 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2dbfc2 "textureLoad_2dbfc2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.wgsl
index 0956d6f..7e05b43 100644
--- a/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2dbfc2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_2dbfc2() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2dbfc2();
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl
index 9bb27ea..b18d227 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e09aa();
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
index f83c858..d3656d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e09aa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
index f83c858..d3656d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e09aa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e09aa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl
index 0a05511..d5f50be 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_2e09aa() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_2e09aa() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm
index bfb6852..82b9280 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2e09aa "textureLoad_2e09aa"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -82,7 +82,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %32 = OpLoad %uint %arg_2
          %29 = OpImageFetch %v4float %30 %31 Sample %32
diff --git a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl
index 30a1bb8..626f19a 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e09aa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_2e09aa() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e09aa();
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl
index e07b901..29bcbee 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e3552();
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.dxc.hlsl
index ae76553..ff35dda 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e3552() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e3552()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.fxc.hlsl
index ae76553..ff35dda 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_2e3552() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2e3552()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl
index 1f7e152..800928e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_2e3552() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_2e3552() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.spvasm
index 89a97d6..53a8753 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2e3552 "textureLoad_2e3552"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.wgsl
index 61d7fd3..776132e 100644
--- a/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2e3552.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_2e3552() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2e3552();
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl
index 21d94f1..7bd2811 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2eaf31();
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.dxc.hlsl
index 2371d17..af95480 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2eaf31() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2eaf31()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.fxc.hlsl
index 2371d17..af95480 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_2eaf31() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_2eaf31()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.spvasm
index 5ef90e4..19f3da0 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_2eaf31 "textureLoad_2eaf31"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.wgsl
index 09380fb..17075d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/2eaf31.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
 
 fn textureLoad_2eaf31() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_2eaf31();
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl
index 6c09ea8..bd857ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_313c73();
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.dxc.hlsl
index 0387901..4f8ef09 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_313c73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_313c73()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.fxc.hlsl
index 0387901..4f8ef09 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_313c73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_313c73()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl
index 04457ed..50f6c1f 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_313c73() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_313c73() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.spvasm
index 1e0519c..637f04c 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_313c73 "textureLoad_313c73"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.wgsl
index 8d4b62f..ddc9b60 100644
--- a/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/313c73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_313c73() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_313c73();
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl
index 7440a07..7ceeb7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_31db4b();
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.dxc.hlsl
index 75d84fb..9abdfa9 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_31db4b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_31db4b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.fxc.hlsl
index 75d84fb..9abdfa9 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_31db4b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_31db4b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl
index e3f9190..5a75d48 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_31db4b() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_31db4b() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.spvasm
index 2dbaee7..ec983ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_31db4b "textureLoad_31db4b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.wgsl
index 41744d0..50375d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/31db4b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read>;
 
 fn textureLoad_31db4b() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_31db4b();
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl
index 09e262a..88182cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_321210();
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.dxc.hlsl
index 967983e..f02fb9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_321210() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_321210()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.fxc.hlsl
index 967983e..f02fb9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_321210() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_321210()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl
index a9c0785..b6a2b6f 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_321210() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_321210() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.spvasm
index 5a3cb9c..92a212f 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_321210 "textureLoad_321210"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.wgsl
index 0a35ff7..cb827c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/321210.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_321210() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_321210();
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl
index 3dc20df..997841b 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_32a7b8();
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.dxc.hlsl
index fd90489..3f5d3d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_32a7b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_32a7b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.fxc.hlsl
index fd90489..3f5d3d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_32a7b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_32a7b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.spvasm
index e05402d..a746211 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_32a7b8 "textureLoad_32a7b8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.wgsl
index a9a2384..0ffcb18 100644
--- a/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/32a7b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_32a7b8() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_32a7b8();
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl
index a09448c..5270221 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_33d3aa();
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.dxc.hlsl
index e2171b8..bf66b7b 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_33d3aa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_33d3aa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.fxc.hlsl
index e2171b8..bf66b7b 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_33d3aa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_33d3aa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl
index 929fbc1..d11d967 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_33d3aa() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_33d3aa() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.spvasm
index 0f275f0..e7aa51b 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_33d3aa "textureLoad_33d3aa"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.wgsl
index a917d18..8ad9cca 100644
--- a/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/33d3aa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read>;
 
 fn textureLoad_33d3aa() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_33d3aa();
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl
index 2c5fbfa..41dc85e 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_348827();
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.dxc.hlsl
index bc71156..27548ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_348827() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_348827()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.fxc.hlsl
index bc71156..27548ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_348827() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_348827()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl
index 39c2298..b803845 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_348827() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_348827() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.spvasm
index 08b63aa..3d5731b 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_348827 "textureLoad_348827"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.wgsl
index a642a91..e58f2e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/348827.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_348827() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_348827();
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl
index f1bf8bb..7e92f80 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_34d97c();
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.dxc.hlsl
index ed0fdc4..dfd7142 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_34d97c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_34d97c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.fxc.hlsl
index ed0fdc4..dfd7142 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_34d97c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_34d97c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.spvasm
index a83a2ba..9803a9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_34d97c "textureLoad_34d97c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.wgsl
index 86d2909..aaad720 100644
--- a/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/34d97c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_34d97c() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_34d97c();
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl
index ece7356..1765b36 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read_write>, coords: i32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35a5e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.dxc.hlsl
index 2fbf2b7..b1342c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_35a5e2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35a5e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.fxc.hlsl
index 2fbf2b7..b1342c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_35a5e2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35a5e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.spvasm
index 34986a4..091cf6b 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_35a5e2 "textureLoad_35a5e2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.wgsl
index 7ea2eb9..8663808 100644
--- a/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/35a5e2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read_write>;
 
 fn textureLoad_35a5e2() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35a5e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl
index a9aece1..edd3211 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35d464();
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.dxc.hlsl
index fa1892e..de6dd84 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_35d464() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35d464()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.fxc.hlsl
index fa1892e..de6dd84 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_35d464() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_35d464()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.spvasm
index 6419d33..d4683a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_35d464 "textureLoad_35d464"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.wgsl
index 720c78c..81d6101 100644
--- a/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/35d464.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_35d464() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_35d464();
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl
index 7eea88a..934f978 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_374351();
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.dxc.hlsl
index 264765e..f9b19f3 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_374351() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_374351()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.fxc.hlsl
index 264765e..f9b19f3 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_374351() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_374351()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl
index 75aac71..cf0fa60 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_374351() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_374351() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.spvasm
index 966d87e..a4ec6db 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_374351 "textureLoad_374351"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.wgsl
index 3246bc9..7438c93 100644
--- a/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/374351.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read>;
 
 fn textureLoad_374351() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_374351();
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl
index 7e7ae22..1b0e34a 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_388688();
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.dxc.hlsl
index f4eccfe..83079c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_388688() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_388688()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.fxc.hlsl
index f4eccfe..83079c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_388688() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_388688()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl
index 4d8a77b..5ec1a54 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_388688() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_388688() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.spvasm
index 8d6c58e..488f4e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_388688 "textureLoad_388688"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.wgsl
index b51dc30..97c2554 100644
--- a/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/388688.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read>;
 
 fn textureLoad_388688() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_388688();
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl
index 72a70db..64e9553 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_38f8ab();
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
index b36e0de..51ebf94 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_38f8ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
index b36e0de..51ebf94 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_38f8ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_38f8ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl
index e4ad342..b463456 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_38f8ab() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_38f8ab() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm
index e547ffd..7fc730b 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_38f8ab "textureLoad_38f8ab"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpLoad %uint %arg_2
          %34 = OpImageFetch %v4int %35 %36 Sample %37
diff --git a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl
index e7e2fac..f056231 100644
--- a/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/38f8ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_38f8ab() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_38f8ab();
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl
index 837e4a6..e32615f 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39016c();
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.dxc.hlsl
index 0890ea6..0514ccb 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_39016c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39016c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.fxc.hlsl
index 0890ea6..0514ccb 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_39016c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39016c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.spvasm
index 141bc97..597306f 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_39016c "textureLoad_39016c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.wgsl
index afeedba..d4cfbba 100644
--- a/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/39016c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
 
 fn textureLoad_39016c() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39016c();
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl
index 808a931..f9d0751 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_395447();
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.dxc.hlsl
index 2804106..dfc350f 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_395447() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_395447()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.fxc.hlsl
index 2804106..dfc350f 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_395447() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_395447()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.spvasm
index a715eeb..1ffab76 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_395447 "textureLoad_395447"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.wgsl
index 3a999a1..bcd6f26 100644
--- a/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/395447.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
 
 fn textureLoad_395447() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_395447();
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl
index 6318da7..fcabc31 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39ef40();
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.dxc.hlsl
index 1db8936..1508500 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_39ef40() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39ef40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.fxc.hlsl
index 1db8936..1508500 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_39ef40() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_39ef40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl
index 1b5b558..2f41a7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_39ef40() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_39ef40() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.spvasm
index 2451c158..a0f1d91 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_39ef40 "textureLoad_39ef40"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.wgsl
index e83af51..9b7ba10 100644
--- a/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/39ef40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read>;
 
 fn textureLoad_39ef40() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_39ef40();
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl
index b639b91..df423ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3a2350();
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.dxc.hlsl
index ac2ad94..979668d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3a2350() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3a2350()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.fxc.hlsl
index ac2ad94..979668d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3a2350() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3a2350()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.spvasm
index 023239d..4d15bbc 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3a2350 "textureLoad_3a2350"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.wgsl
index 4998308..7cb369b 100644
--- a/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3a2350.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_3a2350() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3a2350();
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl
index 521a570..fdd2d9a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3aea13();
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.dxc.hlsl
index 308a21b..d27517c 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_3aea13() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3aea13()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.fxc.hlsl
index 308a21b..d27517c 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_3aea13() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3aea13()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl
index a656563..84afc13 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_3aea13() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_3aea13() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.spvasm
index 9c10f10..805922e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3aea13 "textureLoad_3aea13"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.wgsl
index f913834..b1ebfbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3aea13.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_3aea13() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3aea13();
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl
index eb6a25b..80b8834 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3bbc2b();
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl
index a6ba8d8..30c1fed 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3bbc2b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3bbc2b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl
index a6ba8d8..30c1fed 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3bbc2b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3bbc2b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl
index 5cb28ae..a655c00 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_3bbc2b() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_3bbc2b() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.spvasm
index cb034aa..0f4036c 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3bbc2b "textureLoad_3bbc2b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.wgsl
index 1c70456..981a80b 100644
--- a/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3bbc2b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
 
 fn textureLoad_3bbc2b() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3bbc2b();
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl
index ccad7ce..1cbb847 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c0d9e();
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl
index 2174377..658c09a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_3c0d9e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c0d9e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl
index 2174377..658c09a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_3c0d9e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c0d9e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl
index 8887461..b69417e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_3c0d9e() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_3c0d9e() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.spvasm
index e3308bd..04203fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3c0d9e "textureLoad_3c0d9e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.wgsl
index c0f0224..1c3a44e 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c0d9e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read>;
 
 fn textureLoad_3c0d9e() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c0d9e();
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl
index 65a1cd3..04de8ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c9587();
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.dxc.hlsl
index 10d9142..6412032 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c9587() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c9587()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.fxc.hlsl
index 10d9142..6412032 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c9587() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c9587()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl
index 362d020..a545dc1 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3c9587() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3c9587() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.spvasm
index 1a0de20..45bfba6 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3c9587 "textureLoad_3c9587"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.wgsl
index bd02ba5..8f405d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c9587.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read>;
 
 fn textureLoad_3c9587() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c9587();
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl
index 29101df..5c93aea 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c96e8();
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
index 715d720..2372541 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c96e8() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
index 715d720..2372541 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3c96e8() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3c96e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl
index bf7ff62..9e99fa0 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_3c96e8() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_3c96e8() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm
index a824eea..8ce46ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3c96e8 "textureLoad_3c96e8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -88,7 +88,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %33 = OpLoad %12 %arg_0
+         %33 = OpLoad %15 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl
index 0e6e6fc..8dc7459 100644
--- a/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3c96e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_3c96e8() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3c96e8();
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl
index 4b566fd..619eae9 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3cfb9c();
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl
index 24b50ed..4290efd 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3cfb9c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3cfb9c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl
index 24b50ed..4290efd 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_3cfb9c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3cfb9c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.spvasm
index e6a333f..2ad216c 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3cfb9c "textureLoad_3cfb9c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.wgsl
index 94cede3..f9fb3e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3cfb9c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read_write>;
 
 fn textureLoad_3cfb9c() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3cfb9c();
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl
index a8cfb2b..0b5ee1a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d001b();
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.dxc.hlsl
index bb835e6..eee9bec 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d001b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d001b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.fxc.hlsl
index bb835e6..eee9bec 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d001b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d001b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl
index 5976a56..733f6d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_3d001b() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_3d001b() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.spvasm
index 44a1512..af6ca45 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3d001b "textureLoad_3d001b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.wgsl
index 8e1e36b..9702681 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d001b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read>;
 
 fn textureLoad_3d001b() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d001b();
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl
index bf66441..ba0e039 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d3fd1();
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
index ee06080..c5da552 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d3fd1() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
index ee06080..c5da552 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_3d3fd1() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d3fd1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl
index 1d8971a..7639647 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_3d3fd1() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_3d3fd1() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm
index 6f7e352..44cd39a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3d3fd1 "textureLoad_3d3fd1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -94,7 +94,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2uint %arg_1
          %41 = OpCompositeExtract %uint %40 0
          %42 = OpCompositeExtract %uint %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl
index c7b5e94..720fff4 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d3fd1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_3d3fd1() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d3fd1();
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl
index 55643b4..4d47d9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d9c90();
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.dxc.hlsl
index bd52414..cb28319 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3d9c90() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d9c90()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.fxc.hlsl
index bd52414..cb28319 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3d9c90() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3d9c90()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl
index f45399a..577f127 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_3d9c90() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_3d9c90() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.spvasm
index a636644..bb6e297 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3d9c90 "textureLoad_3d9c90"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.wgsl
index cde3eca..73f9cd5 100644
--- a/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3d9c90.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read>;
 
 fn textureLoad_3d9c90() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3d9c90();
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl
index 3c86d3d..b515898 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: i32, level: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3da3ed();
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.dxc.hlsl
index 2c954a7..111e58a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3da3ed() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.fxc.hlsl
index 2c954a7..111e58a 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3da3ed() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3da3ed()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.glsl
index 0494574..e98f692 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_3da3ed() {
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_3da3ed() {
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.spvasm
index 24c985f..63af7fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3da3ed "textureLoad_3da3ed"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %int %arg_1
          %32 = OpLoad %uint %arg_2
          %29 = OpImageFetch %v4float %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.wgsl
index c60fe24..fafc6de 100644
--- a/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3da3ed.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_3da3ed() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3da3ed();
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl
index 840ca90..69a27a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e16a8();
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.dxc.hlsl
index b3e54c1..a2391a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3e16a8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e16a8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.fxc.hlsl
index b3e54c1..a2391a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_3e16a8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e16a8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.spvasm
index bd113ef..0089002 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3e16a8 "textureLoad_3e16a8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.wgsl
index 4848f1d..7d698eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e16a8.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read_write>;
 
 fn textureLoad_3e16a8() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e16a8();
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl
index ab76fb8..9287349 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e5f6a();
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl
index 29e8dc0..d9af31f 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3e5f6a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e5f6a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl
index 29e8dc0..d9af31f 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_3e5f6a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_3e5f6a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl
index 9e5c508..4a8b9b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3e5f6a() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_3e5f6a() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.spvasm
index c08f690..1fe7c7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_3e5f6a "textureLoad_3e5f6a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.wgsl
index 8fd1a8f..d0ebef7 100644
--- a/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/3e5f6a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read>;
 
 fn textureLoad_3e5f6a() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_3e5f6a();
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl
index b74b377..95eb23b 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_40ee8b();
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.dxc.hlsl
index fe0c907..b090e0a 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_40ee8b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_40ee8b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.fxc.hlsl
index fe0c907..b090e0a 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_40ee8b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_40ee8b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.spvasm
index 5bd175f..02be16b 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_40ee8b "textureLoad_40ee8b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.wgsl
index 78eb5af..bff5a45 100644
--- a/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/40ee8b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_40ee8b() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_40ee8b();
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl
index 1e079fc..678d6d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4212a1();
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.dxc.hlsl
index 32aed1e..acb7d30 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4212a1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4212a1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.fxc.hlsl
index 32aed1e..acb7d30 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4212a1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4212a1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.spvasm
index 5b809df..ef599cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4212a1 "textureLoad_4212a1"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.wgsl
index 2662f76..1469310 100644
--- a/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4212a1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
 
 fn textureLoad_4212a1() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4212a1();
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl
index a172276..3bb65c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_424afd();
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.dxc.hlsl
index 714bad8..3a0db38 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_424afd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_424afd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.fxc.hlsl
index 714bad8..3a0db38 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_424afd() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_424afd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.spvasm
index 2dbd8f4..4d23906 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_424afd "textureLoad_424afd"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.wgsl
index 2bfd851..90a30b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/424afd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_424afd() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_424afd();
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl
index 74d3536..c4672a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_42a631();
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.dxc.hlsl
index afaaa89..9e6fbf0 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_42a631() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_42a631()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.fxc.hlsl
index afaaa89..9e6fbf0 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_42a631() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_42a631()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.spvasm
index 23fdd14..89e447e 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_42a631 "textureLoad_42a631"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.wgsl
index c23e71e..a68adf1 100644
--- a/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/42a631.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
 
 fn textureLoad_42a631() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_42a631();
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl
index e56cb74..11a8736 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43484a();
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.dxc.hlsl
index a401f93..7801158 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43484a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43484a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.fxc.hlsl
index a401f93..7801158 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43484a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43484a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl
index 8edb1ef..b6ecbee 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_43484a() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_43484a() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.spvasm
index 7aaef2a..32ea005 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_43484a "textureLoad_43484a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.wgsl
index 3017e10..65c1d5b 100644
--- a/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/43484a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_43484a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43484a();
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl
index f9abb4c..c842a6c 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_439e2a();
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl
index d42422a..498e0cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_439e2a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl
index d42422a..498e0cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_439e2a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_439e2a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl
index 38f673b..f51cc5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_439e2a() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_439e2a() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm
index c8762db..bb1e9a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_439e2a "textureLoad_439e2a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %33 = OpLoad %v2uint %arg_1
          %34 = OpLoad %int %arg_2
          %31 = OpImageFetch %v4float %32 %33 Lod %34
diff --git a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl
index 6a74d5d..dcdf61a 100644
--- a/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/439e2a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_439e2a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_439e2a();
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl
index e2955e3..69a7a5b 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43cd86();
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.dxc.hlsl
index 47a2b90..be95120 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43cd86() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43cd86()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.fxc.hlsl
index 47a2b90..be95120 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_43cd86() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_43cd86()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.spvasm
index a678d9c..ed7cf44 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_43cd86 "textureLoad_43cd86"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.wgsl
index 4fc52d5..a166911 100644
--- a/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/43cd86.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read_write>;
 
 fn textureLoad_43cd86() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_43cd86();
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl
index 4a34c37..3b9e79a 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_44c826();
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.dxc.hlsl
index 901e488..de03705 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_44c826() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_44c826()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.fxc.hlsl
index 901e488..de03705 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_44c826() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_44c826()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.spvasm
index 4eb1132..4cc8824 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_44c826 "textureLoad_44c826"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.wgsl
index ec8dc9a..c8916a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/44c826.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read>;
 
 fn textureLoad_44c826() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_44c826();
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl
index 3f5e73c..9c796f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4542ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.dxc.hlsl
index a78c8f6..286ec26 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4542ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4542ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.fxc.hlsl
index a78c8f6..286ec26 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4542ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4542ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.spvasm
index b330126..f792b44 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4542ae "textureLoad_4542ae"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.wgsl
index eea7029..520eb4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4542ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_4542ae() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4542ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl
index bec00d3..dc6505e 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_454347();
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.dxc.hlsl
index 5aa18d9..d433253 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_454347() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_454347()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.fxc.hlsl
index 5aa18d9..d433253 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_454347() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_454347()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl
index f7df39f..5785f76 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_454347() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_454347() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.spvasm
index dcb1942..fbd30da 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_454347 "textureLoad_454347"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.wgsl
index 036e9d6..0f8d196 100644
--- a/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/454347.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read>;
 
 fn textureLoad_454347() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_454347();
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl
index cddd857..7a46ea9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4638a0();
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.dxc.hlsl
index 4f45828..933ed9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4638a0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4638a0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.fxc.hlsl
index 4f45828..933ed9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4638a0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4638a0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl
index fb3c774..e043b83 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4638a0() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4638a0() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.spvasm
index 4a2b87f..fee2500 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4638a0 "textureLoad_4638a0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.wgsl
index 977632e..c222e5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4638a0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_4638a0() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4638a0();
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl
index cad9a1b..7bc52bf 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read_write>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_469912();
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.dxc.hlsl
index af78852..6dc9878 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_469912() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_469912()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.fxc.hlsl
index af78852..6dc9878 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_469912() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_469912()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.spvasm
index 3f747b6..0ae0ea8 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_469912 "textureLoad_469912"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.wgsl
index 4d9c94f..fc1653b 100644
--- a/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/469912.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
 
 fn textureLoad_469912() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_469912();
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl
index 1f2b17e..64b578c 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46a93f();
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl
index bd44f21..539f9d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46a93f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl
index bd44f21..539f9d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46a93f() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46a93f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl
index a759993..de642fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_46a93f() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_46a93f() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm
index ccc02b0..c3121f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_46a93f "textureLoad_46a93f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %35 = OpLoad %12 %arg_0
+         %35 = OpLoad %15 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl
index 7f793bf..e30588d 100644
--- a/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/46a93f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_46a93f() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46a93f();
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl
index 15cbb58..85745e0 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46dbf5();
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.dxc.hlsl
index 2627bc5..14c14ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46dbf5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46dbf5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.fxc.hlsl
index 2627bc5..14c14ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_46dbf5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_46dbf5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl
index 6ba5457..bb4c999 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_46dbf5() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_46dbf5() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.spvasm
index a3b5de9..7b97c90 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_46dbf5 "textureLoad_46dbf5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.wgsl
index 7898156..936d143 100644
--- a/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/46dbf5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read>;
 
 fn textureLoad_46dbf5() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_46dbf5();
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl
index 5c5e7f5..2a5cf98 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_473d3e();
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.dxc.hlsl
index 121e102..0734ab4 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_473d3e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_473d3e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.fxc.hlsl
index 121e102..0734ab4 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_473d3e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_473d3e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.spvasm
index aa5e710..c7b7cc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_473d3e "textureLoad_473d3e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.wgsl
index e13af66..cf4fcee 100644
--- a/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/473d3e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
 
 fn textureLoad_473d3e() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_473d3e();
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl
index d7bc225..6298c03 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<u32>, level: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_47e818();
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl
index 4986908..3c89c52 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_47e818() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl
index 4986908..3c89c52 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_47e818() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_47e818()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl
index 3cd8b88..f7c652c 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_47e818() {
   uvec3 arg_1 = uvec3(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_47e818() {
   uvec3 arg_1 = uvec3(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm
index 4ca9f57..e6296c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_47e818 "textureLoad_47e818"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %35 = OpLoad %v3uint %arg_1
          %36 = OpLoad %uint %arg_2
          %33 = OpImageFetch %v4int %34 %35 Lod %36
diff --git a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl
index 64f824f..28db924 100644
--- a/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/47e818.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_47e818() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_47e818();
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl
index 14a031b..100b4a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_482627();
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.dxc.hlsl
index b332474..3c9d46a 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_482627() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_482627()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.fxc.hlsl
index b332474..3c9d46a 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_482627() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_482627()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.spvasm
index e022132..8e6f99d 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_482627 "textureLoad_482627"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.wgsl
index 867052a..e5c33c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/482627.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_482627() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_482627();
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl
index c56898f..d6e368e 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<i32>, level: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_484344();
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl
index 2faab46..f2b0686 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_484344() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_484344()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl
index 2faab46..f2b0686 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_484344() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_484344()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl
index 5e32880..447a7fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_484344() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_484344() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm
index 17d9d56..82d6c23 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_484344 "textureLoad_484344"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %v2int %arg_1
          %32 = OpLoad %int %arg_2
          %29 = OpImageFetch %v4float %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl
index 770fa24..af55802 100644
--- a/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/484344.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_484344() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_484344();
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl
index 3aa58d5..babe4b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4951bb();
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.dxc.hlsl
index 1a13f41..7bc90f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4951bb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4951bb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.fxc.hlsl
index 1a13f41..7bc90f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4951bb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4951bb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.spvasm
index 81c76db..3bc9968 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4951bb "textureLoad_4951bb"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.wgsl
index 02e9697..96992ea 100644
--- a/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4951bb.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_4951bb() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4951bb();
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl
index de15c1a..26ff155 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_49f76f();
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl
index 365b85e..672f9c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_49f76f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_49f76f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl
index 365b85e..672f9c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_49f76f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_49f76f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl
index e33ee8d..44d4301 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_49f76f() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_49f76f() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm
index 076e5d1..2f892c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_49f76f "textureLoad_49f76f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4uint %33 %34 Sample %35
diff --git a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl
index 22f6481..9e3efdb 100644
--- a/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/49f76f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_49f76f() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_49f76f();
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl
index 854d65f..76bd4cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4a5c55();
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.dxc.hlsl
index f3ebdff..238ce31 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4a5c55() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4a5c55()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.fxc.hlsl
index f3ebdff..238ce31 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_4a5c55() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4a5c55()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.spvasm
index 1a28c4f..b97ccea 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4a5c55 "textureLoad_4a5c55"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.wgsl
index 226e99d..5af31d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4a5c55.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
 
 fn textureLoad_4a5c55() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4a5c55();
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl
index 3e89f5e..1201a90 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4acb64();
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl
index c7f2721..06be9b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4acb64() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl
index c7f2721..06be9b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4acb64() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4acb64()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl
index 5554024..e3b1e2e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_4acb64() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_4acb64() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm
index d5750a2..3e8d120 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4acb64 "textureLoad_4acb64"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %35 = OpLoad %12 %arg_0
+         %35 = OpLoad %15 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl
index fd813c8..aab4873 100644
--- a/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4acb64.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_4acb64() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4acb64();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl
index ca2d52c..e9c1fcf 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c15b2();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.dxc.hlsl
index f14519f..57904cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4c15b2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c15b2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.fxc.hlsl
index f14519f..57904cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4c15b2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c15b2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.spvasm
index 61907e1..aad7b9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c15b2 "textureLoad_4c15b2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.wgsl
index 351c69f..6392776 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c15b2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_4c15b2() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c15b2();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl
index 559a0a9..286a0d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c1a1e();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl
index 42750ef..f35faa9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4c1a1e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c1a1e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl
index 42750ef..f35faa9 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4c1a1e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c1a1e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.spvasm
index 8cf8b50..785a9a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c1a1e "textureLoad_4c1a1e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.wgsl
index 8748ba2..608072d 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c1a1e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
 
 fn textureLoad_4c1a1e() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c1a1e();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl
index 8b0185a..254b357 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: u32, level: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c423f();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.dxc.hlsl
index 476503f..1759758 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4c423f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.fxc.hlsl
index 476503f..1759758 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4c423f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c423f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.glsl
index e473458..04f6e23 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_4c423f() {
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_4c423f() {
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.spvasm
index 537b6f4..65bc784 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c423f "textureLoad_4c423f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %uint %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4int %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.wgsl
index 2e38ba2..a272795 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c423f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_4c423f() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c423f();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl
index 0913f15..48fa643 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c67be();
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.dxc.hlsl
index fa75764..620268f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4c67be() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c67be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.fxc.hlsl
index fa75764..620268f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4c67be() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4c67be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl
index 6e302f7..7dc3036 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_4c67be() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_4c67be() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.spvasm
index e4f397d..fc8166f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4c67be "textureLoad_4c67be"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.wgsl
index 1024ca1..d7f1227 100644
--- a/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4c67be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read>;
 
 fn textureLoad_4c67be() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4c67be();
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl
index 802596d..08ec03a 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4ccf9a();
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl
index a32f242..be82d62 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4ccf9a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4ccf9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl
index a32f242..be82d62 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4ccf9a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4ccf9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.spvasm
index 2ac18f5..25fbea0 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4ccf9a "textureLoad_4ccf9a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.wgsl
index a2dc00a..a0334ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4ccf9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read_write>;
 
 fn textureLoad_4ccf9a() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4ccf9a();
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl
index 96c0ab566..eec8ce7 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4cdca5();
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.dxc.hlsl
index b428063..de82d12 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4cdca5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4cdca5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.fxc.hlsl
index b428063..de82d12 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4cdca5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4cdca5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl
index 7904d01..4ba8a94 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4cdca5() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_4cdca5() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.spvasm
index c41ed3b..db820ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4cdca5 "textureLoad_4cdca5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.wgsl
index 9be7b8e..0e6b9f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4cdca5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_4cdca5() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4cdca5();
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl
index f7a9c77..80fa548 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: u32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4db25c();
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl
index aa3b976..da1ff88 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_4db25c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl
index aa3b976..da1ff88 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_4db25c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_4db25c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl
index e166dc9..69d04ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_4db25c() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_4db25c() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm
index f1106ef..ab1c45b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4db25c "textureLoad_4db25c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %31 = OpLoad %12 %arg_0
+         %31 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpLoad %uint %arg_2
          %30 = OpImageFetch %v4float %31 %32 Sample %33
diff --git a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl
index fd4dad9..3d96a6f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4db25c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_4db25c() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4db25c();
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl
index dc62eba..40bbb53 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4e2c5c();
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl
index 55a8700..1b60985 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4e2c5c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4e2c5c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl
index 55a8700..1b60985 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4e2c5c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4e2c5c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.spvasm
index e1caeb6..cb556d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4e2c5c "textureLoad_4e2c5c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.wgsl
index 3e0673c..60f87e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4e2c5c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_4e2c5c() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4e2c5c();
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl
index fcf2b63..3c60c42 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f5496();
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.dxc.hlsl
index bd7787d..7d06a29 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4f5496() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f5496()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.fxc.hlsl
index bd7787d..7d06a29 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_4f5496() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f5496()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl
index 635222e..cc71451 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_4f5496() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_4f5496() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.spvasm
index d02bcd3..472edde 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4f5496 "textureLoad_4f5496"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.wgsl
index 47e43e6..fbdb26c 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f5496.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_4f5496() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f5496();
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl
index 8bab325..3a323e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f90bb();
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.dxc.hlsl
index a8b9436..b59a00e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4f90bb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f90bb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.fxc.hlsl
index a8b9436..b59a00e 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_4f90bb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4f90bb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.spvasm
index bac4cc4..224c66d 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4f90bb "textureLoad_4f90bb"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.wgsl
index 49c441d..c7174ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4f90bb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
 
 fn textureLoad_4f90bb() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4f90bb();
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl
index 0f59f3f..0ec69fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fa6ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl
index 4019471..24633ee0 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4fa6ae() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fa6ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl
index 4019471..24633ee0 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_4fa6ae() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fa6ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl
index f295e30..310202d 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_4fa6ae() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_4fa6ae() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.spvasm
index 9d33927..a5123a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4fa6ae "textureLoad_4fa6ae"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.wgsl
index c8766a1..78c781c 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fa6ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read>;
 
 fn textureLoad_4fa6ae() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fa6ae();
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl
index 9599c22..a36632b 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fd803();
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl
index 032d05e..f86cf95 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4fd803() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl
index 032d05e..f86cf95 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_4fd803() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_4fd803()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl
index f51a97f..9cddb98 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_4fd803() {
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_4fd803() {
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm
index 1d794b7..58f7caf 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_4fd803 "textureLoad_4fd803"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %v3int %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4int %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl
index 5d1873c..f8d479f 100644
--- a/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/4fd803.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_4fd803() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_4fd803();
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl
index 3bc2d6f..834bdb2 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_505aa2();
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.dxc.hlsl
index 20be8d2..1a103c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_505aa2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_505aa2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.fxc.hlsl
index 20be8d2..1a103c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_505aa2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_505aa2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl
index dcd2f27..4b2576d 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_505aa2() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_505aa2() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.spvasm
index b4ed2bb..5d85283 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_505aa2 "textureLoad_505aa2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.wgsl
index 9530e55..8baa219 100644
--- a/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/505aa2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read>;
 
 fn textureLoad_505aa2() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_505aa2();
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl
index 6e16714..00c0f86 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_50915c();
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.dxc.hlsl
index ecaeb1d..063bc6a 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_50915c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_50915c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.fxc.hlsl
index ecaeb1d..063bc6a 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_50915c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_50915c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl
index e10dc18..0a83b58 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_50915c() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_50915c() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.spvasm
index 10f1cdd..fc6603a 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_50915c "textureLoad_50915c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.wgsl
index 371bc8b..1d144f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/50915c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read>;
 
 fn textureLoad_50915c() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_50915c();
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl
index b89b59b..150f4b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5154e1();
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.dxc.hlsl
index 8c35c3c..fa30af2 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5154e1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5154e1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.fxc.hlsl
index 8c35c3c..fa30af2 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5154e1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5154e1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.spvasm
index 7123091..cf98eba 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5154e1 "textureLoad_5154e1"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.wgsl
index 6c9f43b..8f7d38a 100644
--- a/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5154e1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read_write>;
 
 fn textureLoad_5154e1() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5154e1();
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl
index e17b1ca..7582775 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_519ab5();
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.dxc.hlsl
index e152879..db13a1e 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_519ab5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_519ab5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.fxc.hlsl
index e152879..db13a1e 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_519ab5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_519ab5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl
index f43fe2b..d73e677 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_519ab5() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_519ab5() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.spvasm
index b4493d2..f53b493 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_519ab5 "textureLoad_519ab5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.wgsl
index 261ea89..b2fba87 100644
--- a/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/519ab5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read>;
 
 fn textureLoad_519ab5() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_519ab5();
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl
index 6573cf6..6dc5117 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53378a();
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.dxc.hlsl
index 980c005..3ce508e 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_53378a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53378a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.fxc.hlsl
index 980c005..3ce508e 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_53378a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53378a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.spvasm
index 6530354..f4e0cae 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_53378a "textureLoad_53378a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -85,7 +85,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.wgsl
index b7497b1..932b525 100644
--- a/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53378a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read>;
 
 fn textureLoad_53378a() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53378a();
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl
index d2a685c..4f39122 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53941c();
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.dxc.hlsl
index ca7d700..cad8662 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_53941c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53941c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.fxc.hlsl
index ca7d700..cad8662 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_53941c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53941c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.spvasm
index 258f02c..8d90eeb 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_53941c "textureLoad_53941c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.wgsl
index 91d8200..3563f7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53941c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_53941c() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53941c();
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl
index 9b1bc49..baee591 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53e142();
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl
index 5f44b2a..3e6189b 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_53e142() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53e142()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl
index 5f44b2a..3e6189b 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_53e142() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_53e142()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl
index 2303159..b95ae6c 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_53e142() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_53e142() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm
index b291a69..730b6fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_53e142 "textureLoad_53e142"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -92,7 +92,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %36 = OpLoad %16 %arg_0
+         %36 = OpLoad %19 %arg_0
          %38 = OpLoad %v2uint %arg_1
          %39 = OpCompositeExtract %uint %38 0
          %40 = OpCompositeExtract %uint %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl
index 5908273..a2137c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/53e142.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_53e142() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_53e142();
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl
index 45deced..a46af4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: i32, level: i32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54a59b();
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl
index 241928a..860c44c 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54a59b() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl
index 241928a..860c44c 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54a59b() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54a59b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl
index bb37300..4903545 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_54a59b() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_54a59b() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm
index 8482070..f964fba 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_54a59b "textureLoad_54a59b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %33 = OpLoad %12 %arg_0
+         %33 = OpLoad %15 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl
index e99e2ab..f49ff24 100644
--- a/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54a59b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_54a59b() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54a59b();
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl
index 41947fb..63b8839 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54e0ce();
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.dxc.hlsl
index 1bb0e47..d0b66fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54e0ce() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54e0ce()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.fxc.hlsl
index 1bb0e47..d0b66fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_54e0ce() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54e0ce()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl
index 4780ed6..176f4f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_54e0ce() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_54e0ce() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.spvasm
index 8099940..601ef2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_54e0ce "textureLoad_54e0ce"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.wgsl
index fb5f62a..a00802f 100644
--- a/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54e0ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read>;
 
 fn textureLoad_54e0ce() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54e0ce();
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl
index 5755967..27f5591 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54fb38();
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.dxc.hlsl
index f5899b7..08dd62f 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_54fb38() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54fb38()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.fxc.hlsl
index f5899b7..08dd62f 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_54fb38() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_54fb38()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.spvasm
index 33033df..64352a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_54fb38 "textureLoad_54fb38"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.wgsl
index 5e57283..e0bebf9 100644
--- a/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/54fb38.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_54fb38() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_54fb38();
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl
index 178c233..94d34c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_55e745();
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.dxc.hlsl
index 2d89282..205eb14 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_55e745() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_55e745()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.fxc.hlsl
index 2d89282..205eb14 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_55e745() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_55e745()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl
index 1fa8e24..60e578b 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_55e745() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_55e745() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.spvasm
index 4b216e8..b3c3655 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_55e745 "textureLoad_55e745"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.wgsl
index 0b89ffc..b712d0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/55e745.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_55e745() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_55e745();
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl
index 3943645..481d93c 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_560573();
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.dxc.hlsl
index 377599f..9bbeb13 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_560573() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_560573()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.fxc.hlsl
index 377599f..9bbeb13 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_560573() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_560573()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl
index aa5ebe5..d2ac0d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_560573() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_560573() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.spvasm
index 2654990..62a0212 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_560573 "textureLoad_560573"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.wgsl
index 69fa174..632382c 100644
--- a/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/560573.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_560573() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_560573();
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl
index fac6ade..b88f764 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_56a000();
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.dxc.hlsl
index 197b384..13beb03 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_56a000() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_56a000()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.fxc.hlsl
index 197b384..13beb03 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_56a000() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_56a000()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.spvasm
index 849275a..231986f 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_56a000 "textureLoad_56a000"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.wgsl
index 8e79183..5c8cbc0 100644
--- a/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/56a000.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read_write>;
 
 fn textureLoad_56a000() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_56a000();
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl
index 0453b5f2..2238cfc 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_582015();
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.dxc.hlsl
index f01ef47..63bcd8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_582015() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_582015()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.fxc.hlsl
index f01ef47..63bcd8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_582015() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_582015()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl
index e921ab1..ed6bca5 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_582015() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_582015() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.spvasm
index 8721765..42422b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_582015 "textureLoad_582015"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.wgsl
index 7155f71..6fa3022 100644
--- a/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/582015.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_582015() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_582015();
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl
index 8d6b5e3..6727565 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_589eaa();
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.dxc.hlsl
index 5abe884..6ee10f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_589eaa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_589eaa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.fxc.hlsl
index 5abe884..6ee10f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_589eaa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_589eaa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl
index 538a9d6..52a8dd6 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_589eaa() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_589eaa() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.spvasm
index 3d7e46e..1a1e3fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_589eaa "textureLoad_589eaa"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.wgsl
index 2008d38..9f19ccc 100644
--- a/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/589eaa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read>;
 
 fn textureLoad_589eaa() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_589eaa();
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl
index 13834f1..1cde15b 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: i32, level: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5a2f9d();
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl
index 5ae075d..b8aa022 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5a2f9d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl
index 5ae075d..b8aa022 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5a2f9d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5a2f9d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.glsl
index e4bdc02..361a6f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_5a2f9d() {
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_5a2f9d() {
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.spvasm
index 7c03125..5573728 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5a2f9d "textureLoad_5a2f9d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
                OpStore %arg_2 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %31 = OpLoad %int %arg_2
          %28 = OpImageFetch %v4int %29 %30 Lod %31
diff --git a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.wgsl
index b297d8b..998812b 100644
--- a/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5a2f9d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_5a2f9d() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5a2f9d();
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl
index 47f6094..e148dac 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5abbf2();
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.dxc.hlsl
index 979fed9..299b221 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5abbf2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5abbf2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.fxc.hlsl
index 979fed9..299b221 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5abbf2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5abbf2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.spvasm
index 0415f6e..d9cc839 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5abbf2 "textureLoad_5abbf2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.wgsl
index 1ac3b4f..27d146f 100644
--- a/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5abbf2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read>;
 
 fn textureLoad_5abbf2() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5abbf2();
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl
index c1e2364..8cb5b33 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b0f5b();
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl
index bb974ee..2237a8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5b0f5b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b0f5b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl
index bb974ee..2237a8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5b0f5b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b0f5b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.spvasm
index c896b89..22badc1 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5b0f5b "textureLoad_5b0f5b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.wgsl
index f43ab9d..8903c87 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b0f5b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read_write>;
 
 fn textureLoad_5b0f5b() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b0f5b();
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl
index c857b54..cdeb7f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b4947();
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.dxc.hlsl
index 498b14d..7f48ef4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5b4947() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b4947()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.fxc.hlsl
index 498b14d..7f48ef4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5b4947() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5b4947()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.spvasm
index dab7907..f3cf152 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5b4947 "textureLoad_5b4947"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.wgsl
index 8bd2b54..4cabc53 100644
--- a/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5b4947.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
 
 fn textureLoad_5b4947() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5b4947();
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl
index 8722e3a..bcaf5c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5bb7fb();
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl
index f5e395b..c8efbd0 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5bb7fb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5bb7fb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl
index f5e395b..c8efbd0 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5bb7fb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5bb7fb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.spvasm
index 99fb417..a78a13f 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5bb7fb "textureLoad_5bb7fb"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.wgsl
index c94b78d..8902077 100644
--- a/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5bb7fb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read>;
 
 fn textureLoad_5bb7fb() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5bb7fb();
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl
index 0107b15..9042a0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5c69f8();
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.dxc.hlsl
index 4486dda..5e2aecc 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5c69f8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5c69f8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.fxc.hlsl
index 4486dda..5e2aecc 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_5c69f8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5c69f8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.spvasm
index bcb58a9..3c91c57 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5c69f8 "textureLoad_5c69f8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.wgsl
index 9f5b8f0..e7c911e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5c69f8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read_write>;
 
 fn textureLoad_5c69f8() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5c69f8();
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl
index 38dcae7..33b00d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cd3fc();
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl
index 2ebe22f..21bab8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5cd3fc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cd3fc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl
index 2ebe22f..21bab8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5cd3fc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cd3fc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl
index b83e85e..6624bd9 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_5cd3fc() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_5cd3fc() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.spvasm
index e128292..6d7b81e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5cd3fc "textureLoad_5cd3fc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.wgsl
index ac4645e..3a43ba6 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cd3fc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
 
 fn textureLoad_5cd3fc() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cd3fc();
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl
index 175b502..cea9f9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cee3b();
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.dxc.hlsl
index d9aae3c..628e747 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5cee3b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cee3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.fxc.hlsl
index d9aae3c..628e747 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5cee3b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5cee3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl
index 82ad7a6..f07572a 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5cee3b() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.spvasm
index e934f9a0..c9769ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5cee3b "textureLoad_5cee3b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.wgsl
index 79c7cb8..1fa3a81 100644
--- a/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5cee3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read>;
 
 fn textureLoad_5cee3b() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5cee3b();
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl
index a446b25..e57d489 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d0a2f();
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl
index a994d5e..31bb41a 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5d0a2f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d0a2f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl
index a994d5e..31bb41a 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5d0a2f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d0a2f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl
index 8c4a385..128b1ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_5d0a2f() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_5d0a2f() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.spvasm
index 97658f6..68361ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5d0a2f "textureLoad_5d0a2f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.wgsl
index 69ec241..8f378e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d0a2f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_5d0a2f() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d0a2f();
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl
index f71fdc7..58a43fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d4042();
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.dxc.hlsl
index 3eae4df..aa8b115 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5d4042() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d4042()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.fxc.hlsl
index 3eae4df..aa8b115 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5d4042() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5d4042()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl
index 8f463b4..44aeb71 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5d4042() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_5d4042() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.spvasm
index 054d7a2..9a086c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5d4042 "textureLoad_5d4042"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.wgsl
index 26fe2cf..a7a62ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5d4042.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_5d4042() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5d4042();
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl
index 4f5b1a8..e02ce237 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read>, coords: vec2<i32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5dd4c7();
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl
index ac07868..6ec1a47 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5dd4c7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5dd4c7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl
index ac07868..6ec1a47 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5dd4c7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5dd4c7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.spvasm
index 7ee0e7d..265d891 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5dd4c7 "textureLoad_5dd4c7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.wgsl
index 3a66966..d287d5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5dd4c7.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read>;
 
 fn textureLoad_5dd4c7() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5dd4c7();
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl
index 65fca79..7cbfc80 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read_write>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e17a7();
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.dxc.hlsl
index 68dc2fd..1cc8a0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5e17a7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e17a7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.fxc.hlsl
index 68dc2fd..1cc8a0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_5e17a7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e17a7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.spvasm
index 50fe29e..4f5f563 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5e17a7 "textureLoad_5e17a7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.wgsl
index c6d750a8..e49b7a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e17a7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
 
 fn textureLoad_5e17a7() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e17a7();
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl
index 41f404b..166c968 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e1843();
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.dxc.hlsl
index a06740e..af2d1a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5e1843() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e1843()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.fxc.hlsl
index a06740e..af2d1a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_5e1843() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e1843()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.spvasm
index c780221..98f3a13 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5e1843 "textureLoad_5e1843"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.wgsl
index edcc889..905116d 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e1843.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_5e1843() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e1843();
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl
index 0e45b27..9102e60 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e8d3f();
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl
index a2ffca0..6057530 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5e8d3f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e8d3f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl
index a2ffca0..6057530 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_5e8d3f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5e8d3f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl
index 0c8bcda..d17e8ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_5e8d3f() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_5e8d3f() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.spvasm
index 221aef9..4a9eacc 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5e8d3f "textureLoad_5e8d3f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.wgsl
index 435ea27..ffe01eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5e8d3f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read>;
 
 fn textureLoad_5e8d3f() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5e8d3f();
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl
index 3bf8b30..6ea61f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5ed6ad();
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl
index 023595e..fce686a 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5ed6ad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5ed6ad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl
index 023595e..fce686a 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5ed6ad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5ed6ad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.spvasm
index 1eb719e..1ed4293 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5ed6ad "textureLoad_5ed6ad"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.wgsl
index e95cfd2..be4bbb5 100644
--- a/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5ed6ad.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureLoad_5ed6ad() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5ed6ad();
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl
index 19ec599..4f2e8b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5f4473();
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.dxc.hlsl
index d59f230..dfae7f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5f4473() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5f4473()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.fxc.hlsl
index d59f230..dfae7f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_5f4473() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5f4473()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl
index 9aed669..9c59c56 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5f4473() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_5f4473() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.spvasm
index 2d94192..af85fc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5f4473 "textureLoad_5f4473"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.wgsl
index 952ce41..7a55518 100644
--- a/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5f4473.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read>;
 
 fn textureLoad_5f4473() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5f4473();
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl
index a65e4f8..c26998c 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5feb4d();
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.dxc.hlsl
index 25ee475..7ba287d 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5feb4d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5feb4d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.fxc.hlsl
index 25ee475..7ba287d 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_5feb4d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_5feb4d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl
index 4ab8be4..f783011 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5feb4d() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_5feb4d() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.spvasm
index a54275a..360d3f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_5feb4d "textureLoad_5feb4d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.wgsl
index fc4cbb8..953193c 100644
--- a/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/5feb4d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read>;
 
 fn textureLoad_5feb4d() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_5feb4d();
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl
index 296d1c7..4ded2f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6154d4();
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl
index 3ccdcd6..f83be0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6154d4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6154d4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl
index 3ccdcd6..f83be0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6154d4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6154d4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl
index 5523930..bbfc1af 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6154d4() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6154d4() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm
index 37acd86..303a3c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6154d4 "textureLoad_6154d4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpLoad %int %arg_2
          %33 = OpImageFetch %v4uint %34 %35 Lod %36
diff --git a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl
index 393f4f7..b45296f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6154d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_6154d4() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6154d4();
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl
index 5de04128..6160eb1 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_61e2e8();
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.dxc.hlsl
index 5037f57..0f30a07 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_61e2e8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_61e2e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.fxc.hlsl
index 5037f57..0f30a07 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_61e2e8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_61e2e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.spvasm
index 8a24b10..a93026d 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_61e2e8 "textureLoad_61e2e8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.wgsl
index cda26dd..3b4c2dc 100644
--- a/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/61e2e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
 
 fn textureLoad_61e2e8() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_61e2e8();
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl
index d3465d8..9672a4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_620caa();
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.dxc.hlsl
index 56792c9..bcf3997 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_620caa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_620caa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.fxc.hlsl
index 56792c9..bcf3997 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_620caa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_620caa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.spvasm
index 0d9bac8..2af7ffb 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_620caa "textureLoad_620caa"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.wgsl
index 0dc762b..3a7d13c 100644
--- a/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/620caa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read>;
 
 fn textureLoad_620caa() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_620caa();
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl
index a8a1078..dbcb518 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read_write>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_622278();
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.dxc.hlsl
index f3405d9..06a13c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_622278() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_622278()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.fxc.hlsl
index f3405d9..06a13c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_622278() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_622278()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.spvasm
index 6b409f1..8e81497 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_622278 "textureLoad_622278"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.wgsl
index 731ab5a..13afa89 100644
--- a/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/622278.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
 
 fn textureLoad_622278() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_622278();
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl
index 6222aa4..341db7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6273b1();
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl
index eab670a..71297b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6273b1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl
index eab670a..71297b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6273b1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6273b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl
index eb7d6ff..9202f7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6273b1() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6273b1() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm
index e0d0a15..4008431 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6273b1 "textureLoad_6273b1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %31 = OpLoad %12 %arg_0
+         %31 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpLoad %int %arg_2
          %30 = OpImageFetch %v4float %31 %32 Sample %33
diff --git a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl
index e58079a..a4c13b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6273b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6273b1() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6273b1();
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl
index c5c365e..6235cd0 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d125();
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.dxc.hlsl
index 86e9d5b..44cebe3 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_62d125() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d125()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.fxc.hlsl
index 86e9d5b..44cebe3 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_62d125() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d125()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl
index 39c6629..9274352 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_62d125() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image3D arg_0;
 vec4 textureLoad_62d125() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.spvasm
index ff096e3..c1f7949 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_62d125 "textureLoad_62d125"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.wgsl
index 477fd7e..904410d 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d125.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read>;
 
 fn textureLoad_62d125() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d125();
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl
index ee5207d..01e00a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureLoad(texture: texture_1d<i32>, coords: i32, level: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d1de();
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.dxc.hlsl
index 838ed67..66eb7b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_62d1de() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.fxc.hlsl
index 838ed67..66eb7b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_62d1de() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_62d1de()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.glsl
index ce0f34f..46ebada 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_62d1de() {
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_62d1de() {
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.spvasm
index 7baaf21..056a87b 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_62d1de "textureLoad_62d1de"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %int %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4int %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.wgsl
index 29a62ea..14aca57 100644
--- a/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/62d1de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureLoad_62d1de() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_62d1de();
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl
index 2f73dbc..73d8178 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_639962();
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl
index b1af358..e2874ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_639962() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_639962()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl
index b1af358..e2874ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_639962() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_639962()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl
index 1989a5a..6af06b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_639962() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_639962() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm
index 332afce..3c016ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_639962 "textureLoad_639962"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpLoad %uint %arg_2
          %33 = OpImageFetch %v4int %34 %35 Sample %36
diff --git a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl
index ae0e045..e9eaf4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/639962.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_639962() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_639962();
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl
index b63711a..c84d7df 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_63be18();
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.dxc.hlsl
index 54450a8..160199f 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_63be18() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_63be18()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.fxc.hlsl
index 54450a8..160199f 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_63be18() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_63be18()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.spvasm
index 4c15ca3..afceed8 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_63be18 "textureLoad_63be18"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.wgsl
index ad06b48..7a8e87d 100644
--- a/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/63be18.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_63be18() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_63be18();
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl
index fa244af..57f728c 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_64c372();
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.dxc.hlsl
index d5b3379..f8d4054 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_64c372() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_64c372()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.fxc.hlsl
index d5b3379..f8d4054 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_64c372() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_64c372()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.spvasm
index 27dc8c6..9d8b751 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_64c372 "textureLoad_64c372"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.wgsl
index 1b86ff7..d27cc4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/64c372.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_64c372() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_64c372();
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl
index 90103da..8eee029 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_656d76();
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl
index c1b3f90..ac560cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_656d76() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_656d76()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl
index c1b3f90..ac560cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_656d76() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_656d76()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl
index 9765a42..93b41f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_656d76() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_656d76() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm
index fb54dda..ec68b77 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_656d76 "textureLoad_656d76"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -94,7 +94,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2int %arg_1
          %41 = OpCompositeExtract %int %40 0
          %42 = OpCompositeExtract %int %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl
index 07095a9..4c90ff7 100644
--- a/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/656d76.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_656d76() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_656d76();
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl
index 940950b..2869743 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_65a4d0();
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.dxc.hlsl
index 3b1ffec..a8d2c2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_65a4d0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_65a4d0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.fxc.hlsl
index 3b1ffec..a8d2c2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_65a4d0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_65a4d0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl
index 7edbd89..474b94a 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_65a4d0() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_65a4d0() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.spvasm
index e5150f6..f663a09 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_65a4d0 "textureLoad_65a4d0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.wgsl
index 6b075d4..1f9a070 100644
--- a/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/65a4d0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_65a4d0() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_65a4d0();
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl
index 7cf3722..3b32ebd 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_666010();
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.dxc.hlsl
index e9d8d2e..1664934 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_666010() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_666010()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.fxc.hlsl
index e9d8d2e..1664934 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_666010() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_666010()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.spvasm
index a3eb6e1..3af3d78 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_666010 "textureLoad_666010"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.wgsl
index a071229..1c2bbdf 100644
--- a/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/666010.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
 
 fn textureLoad_666010() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_666010();
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl
index f07dd3d..53588a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6678b6();
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.dxc.hlsl
index 0174de5..7dba870 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_6678b6() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6678b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.fxc.hlsl
index 0174de5..7dba870 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_6678b6() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6678b6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl
index 204fd5e..e2264be 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_6678b6() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_6678b6() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.spvasm
index ed866c3..fd93161 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6678b6 "textureLoad_6678b6"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.wgsl
index 7a3ad02..f0fa27c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6678b6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read>;
 
 fn textureLoad_6678b6() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6678b6();
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl
index b86007e..500f928 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: u32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_66be47();
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl
index 8dbca61..4f1f2d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_66be47() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_66be47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl
index 8dbca61..4f1f2d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_66be47() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_66be47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl
index f570b5b..5a726bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_66be47() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_66be47() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm
index 51fb41b..624b06d 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_66be47 "textureLoad_66be47"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %34 = OpLoad %12 %arg_0
+         %34 = OpLoad %15 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl
index fef3cc8..ae6086e 100644
--- a/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/66be47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_66be47() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_66be47();
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl
index 943e71b..761cd78 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67d826();
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.dxc.hlsl
index da8bbc5..e1d0dbf 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_67d826() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67d826()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.fxc.hlsl
index da8bbc5..e1d0dbf 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_67d826() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67d826()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl
index b3207c4..3c73b98 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_67d826() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_67d826() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.spvasm
index b6608e2..ed314e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_67d826 "textureLoad_67d826"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.wgsl
index cf05279..4124748 100644
--- a/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/67d826.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_67d826() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67d826();
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl
index 7e1fa0a..a84e9ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67edca();
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.dxc.hlsl
index f4764ed..30aef43 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_67edca() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67edca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.fxc.hlsl
index f4764ed..30aef43 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_67edca() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_67edca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl
index 0eb6835..9782963 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_67edca() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_67edca() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.spvasm
index b0c0b8f..bc31fc3 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_67edca "textureLoad_67edca"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.wgsl
index 8dc80b24..f57355d 100644
--- a/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/67edca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read>;
 
 fn textureLoad_67edca() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_67edca();
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl
index 4eaae65..9572e73 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_68d273();
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.dxc.hlsl
index 8479f8d..94182e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_68d273() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_68d273()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.fxc.hlsl
index 8479f8d..94182e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_68d273() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_68d273()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.spvasm
index e8b4858..e46fbdb 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_68d273 "textureLoad_68d273"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.wgsl
index e027f59..1f171bc 100644
--- a/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/68d273.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read_write>;
 
 fn textureLoad_68d273() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_68d273();
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl
index cecb29a..2f4049d 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: u32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6925bc();
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl
index 7622b28..8f93a33 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6925bc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl
index 7622b28..8f93a33 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_6925bc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_6925bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl
index f139b40..2d42076 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6925bc() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_6925bc() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm
index ac98fc4..405f46f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6925bc "textureLoad_6925bc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %12 %arg_0
+         %33 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4float %33 %34 Sample %35
diff --git a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl
index 4ae592a..1229c3a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6925bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_6925bc() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6925bc();
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl
index 22e4037..16ba4a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_69fee5();
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.dxc.hlsl
index 0633f6b..b6b2d86 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_69fee5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_69fee5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.fxc.hlsl
index 0633f6b..b6b2d86 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_69fee5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_69fee5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl
index 4706337..1657f81 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_69fee5() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_69fee5() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.spvasm
index 51be110..ef99521 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_69fee5 "textureLoad_69fee5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.wgsl
index 8eaefcc..2d11ec5 100644
--- a/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/69fee5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_69fee5() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_69fee5();
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl
index c2585a4..92a63b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6a6871();
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.dxc.hlsl
index d287ddc..2f02b58 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6a6871() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6a6871()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.fxc.hlsl
index d287ddc..2f02b58 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6a6871() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6a6871()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.spvasm
index a4a06a6..a85c3b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6a6871 "textureLoad_6a6871"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.wgsl
index 202af2b..3246a9d 100644
--- a/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6a6871.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read_write>;
 
 fn textureLoad_6a6871() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6a6871();
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl
index aeec85c..ec6e558 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: i32, level: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b77d4();
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.dxc.hlsl
index a07ea62..b812ce1 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6b77d4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b77d4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.fxc.hlsl
index a07ea62..b812ce1 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6b77d4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b77d4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.glsl
index cbf6357..3de75fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6b77d4() {
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_6b77d4() {
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.spvasm
index b369d0b..7fccc59 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6b77d4 "textureLoad_6b77d4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %int %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4uint %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.wgsl
index 6c1d39d..023b3f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b77d4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_6b77d4() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b77d4();
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl
index afdef09..88ce297 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b8ba6();
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl
index b2ee411..c9c5eb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6b8ba6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b8ba6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl
index b2ee411..c9c5eb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6b8ba6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6b8ba6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.spvasm
index 5c316fe..ae3b463 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6b8ba6 "textureLoad_6b8ba6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.wgsl
index 9d77f3e..7f407d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6b8ba6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_6b8ba6() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6b8ba6();
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl
index a4238c2..0a9605d 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6ba9ab();
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl
index 1d9526b..95e00a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6ba9ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6ba9ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl
index 1d9526b..95e00a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6ba9ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6ba9ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.spvasm
index 3f9b554..1d974fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6ba9ab "textureLoad_6ba9ab"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.wgsl
index 1a3a04b..55a901c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6ba9ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_6ba9ab() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6ba9ab();
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl
index 631dee6..28da26e 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf3e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl
index c315b3f..5d1c645 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6bf3e2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf3e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl
index c315b3f..5d1c645 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6bf3e2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf3e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.spvasm
index dd541c0..f5da0cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6bf3e2 "textureLoad_6bf3e2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.wgsl
index 4953a85..f6e4b12 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf3e2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_6bf3e2() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf3e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl
index 1033103..45a0c7b 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf4b7();
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
index 37a2c2c..7f4bc64 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6bf4b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf4b7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
index 37a2c2c..7f4bc64 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_6bf4b7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6bf4b7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl
index 6780ba7..c391e78 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_6bf4b7() {
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_6bf4b7() {
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm
index 7387333..1ae21a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6bf4b7 "textureLoad_6bf4b7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v3int %arg_1
          %37 = OpLoad %uint %arg_2
          %34 = OpImageFetch %v4uint %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl
index 65b2b88..29ae01f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6bf4b7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_6bf4b7() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6bf4b7();
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl
index 9a23697..1b8f919 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d1fb4();
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl
index 94fd41b..1bbb66f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_6d1fb4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d1fb4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl
index 94fd41b..1bbb66f 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_6d1fb4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d1fb4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl
index db31dbc..8976739 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_6d1fb4() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_6d1fb4() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.spvasm
index ecf4207..591fefe 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6d1fb4 "textureLoad_6d1fb4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.wgsl
index 2c9a670..97dffd2 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d1fb4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_6d1fb4() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d1fb4();
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl
index cd48e70..694e398 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: u32, level: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d376a();
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.dxc.hlsl
index 9d6e1c0..5bec89a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6d376a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.fxc.hlsl
index 9d6e1c0..5bec89a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6d376a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d376a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.glsl
index b7251f3..0a1c93c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_6d376a() {
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_6d376a() {
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.spvasm
index 43b5a05..beec6c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6d376a "textureLoad_6d376a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -79,7 +79,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %uint_1
-         %26 = OpLoad %12 %arg_0
+         %26 = OpLoad %15 %arg_0
          %27 = OpLoad %uint %arg_1
          %28 = OpLoad %uint %arg_2
          %25 = OpImageFetch %v4float %26 %27 Lod %28
diff --git a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.wgsl
index 0216489..257c6a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d376a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_6d376a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d376a();
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl
index 42f8a21..d7e8646 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d7bb5();
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl
index 65a9606..351f57c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6d7bb5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d7bb5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl
index 65a9606..351f57c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6d7bb5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6d7bb5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.spvasm
index b723b8a..c25177c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6d7bb5 "textureLoad_6d7bb5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.wgsl
index 85e5c31..90b877c 100644
--- a/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6d7bb5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_6d7bb5() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6d7bb5();
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl
index e2929a6..4481dd7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6e903f();
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.dxc.hlsl
index b243f9c..cbf7d01 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_6e903f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6e903f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.fxc.hlsl
index b243f9c..cbf7d01 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_6e903f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6e903f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.spvasm
index 6805649..89aa761 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6e903f "textureLoad_6e903f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.wgsl
index 1c94ed1..48e621a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6e903f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8sint, read_write>;
 
 fn textureLoad_6e903f() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6e903f();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl
index fb96ae3..4ea4fc0 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read>, coords: vec3<u32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0370();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.dxc.hlsl
index 9354d0f..f4e7a87 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f0370() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0370()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.fxc.hlsl
index 9354d0f..f4e7a87 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f0370() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0370()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.spvasm
index 15401a1..f2f325a 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f0370 "textureLoad_6f0370"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.wgsl
index e71fcab..fa31fb7 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0370.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read>;
 
 fn textureLoad_6f0370() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0370();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl
index 81c62e1..252be01 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0ea8();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl
index d644976..d8ddcf3 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f0ea8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0ea8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl
index d644976..d8ddcf3 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f0ea8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f0ea8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.spvasm
index bec2093..3a304ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f0ea8 "textureLoad_6f0ea8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.wgsl
index 330a720..e240b4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f0ea8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
 
 fn textureLoad_6f0ea8() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f0ea8();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl
index f53c055..020a630 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f1750();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.dxc.hlsl
index 75023c2..5bcaaca 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f1750() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f1750()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.fxc.hlsl
index 75023c2..5bcaaca 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_6f1750() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f1750()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl
index b930ae27..56ca745 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_6f1750() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_6f1750() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.spvasm
index 2ba1f6a..b5bcb79 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f1750 "textureLoad_6f1750"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.wgsl
index 0c1fa73..5b5afff 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f1750.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_6f1750() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f1750();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl
index 4177833..eb0fc19 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f8927();
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.dxc.hlsl
index c9d50bd..cedde58 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f8927() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f8927()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.fxc.hlsl
index c9d50bd..cedde58 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_6f8927() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_6f8927()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.spvasm
index 2c5d832..dc098b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_6f8927 "textureLoad_6f8927"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.wgsl
index b98db1c..3801594 100644
--- a/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/6f8927.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_6f8927() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_6f8927();
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl
index 5b289ef..c00373b 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_714471();
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl
index 84e457b..aedf4cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_714471() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_714471()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl
index 84e457b..aedf4cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_714471() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_714471()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl
index 3842942..ed17ff3 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_714471() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_714471() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm
index 296cb78..ed55dae 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_714471 "textureLoad_714471"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpLoad %uint %arg_2
          %33 = OpImageFetch %v4int %34 %35 Lod %36
diff --git a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl
index 01635e1..1d16d00 100644
--- a/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/714471.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_714471() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_714471();
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl
index 25bbf03..4a8fe10 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72bb3c();
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.dxc.hlsl
index 044bf39..94cfbff 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_72bb3c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72bb3c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.fxc.hlsl
index 044bf39..94cfbff 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_72bb3c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72bb3c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl
index 710dc81..708de33 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_72bb3c() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_72bb3c() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.spvasm
index 014cbe2..a827aac 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_72bb3c "textureLoad_72bb3c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.wgsl
index 66c8548..82ab74b 100644
--- a/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/72bb3c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_72bb3c() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72bb3c();
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl
index 046698f..675b79d 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72c9c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.dxc.hlsl
index 23057ad..d14ecd6 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_72c9c3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72c9c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.fxc.hlsl
index 23057ad..d14ecd6 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_72c9c3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_72c9c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.spvasm
index 34f5a84..88f5d23 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_72c9c3 "textureLoad_72c9c3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.wgsl
index f10071d..9216196 100644
--- a/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/72c9c3.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_72c9c3() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_72c9c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl
index 4b9d636..ec811db 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_742f1b();
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.dxc.hlsl
index 3665c0d..bc8c71c 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_742f1b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_742f1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.fxc.hlsl
index 3665c0d..bc8c71c 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_742f1b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_742f1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.spvasm
index 50af323..552e51f 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_742f1b "textureLoad_742f1b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.wgsl
index 3e6dd86..1d127e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/742f1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read_write>;
 
 fn textureLoad_742f1b() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_742f1b();
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl
index c0793fd..eb65f11 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_749704();
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.dxc.hlsl
index 767952e..d77d4c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_749704() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_749704()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.fxc.hlsl
index 767952e..d77d4c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_749704() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_749704()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl
index 5a8fe6b..d77017d 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_749704() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_749704() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.spvasm
index f9f31d9..3e8d65f 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_749704 "textureLoad_749704"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.wgsl
index 61b7c4a..459dea9 100644
--- a/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/749704.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read>;
 
 fn textureLoad_749704() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_749704();
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl
index 8d98449..ceda255 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read_write>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_74a387();
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.dxc.hlsl
index 4cf2b3b..f90dce5 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_74a387() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_74a387()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.fxc.hlsl
index 4cf2b3b..f90dce5 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_74a387() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_74a387()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.spvasm
index 6d10da2..02fafa9 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_74a387 "textureLoad_74a387"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.wgsl
index 97acafb..db18761 100644
--- a/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/74a387.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read_write>;
 
 fn textureLoad_74a387() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_74a387();
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl
index bfb58b7..3f601b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_773c46();
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.dxc.hlsl
index 235461a..4bbf77a 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_773c46() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_773c46()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.fxc.hlsl
index 235461a..4bbf77a 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_773c46() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_773c46()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.spvasm
index a0dddf9..4f571e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_773c46 "textureLoad_773c46"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.wgsl
index 099f3dc..f03372f 100644
--- a/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/773c46.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read>;
 
 fn textureLoad_773c46() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_773c46();
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl
index 0ee7d2c..9fbe8d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_789045();
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl
index 9689010..95b3816 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_789045() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_789045()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl
index 9689010..95b3816 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_789045() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_789045()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl
index 7548a7e..d1f8768 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_789045() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_789045() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm
index bf9ea6d..516098f 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_789045 "textureLoad_789045"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %35 = OpLoad %12 %arg_0
+         %35 = OpLoad %15 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl
index 5ad3713..001e796 100644
--- a/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/789045.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_789045() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_789045();
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl
index adadee9..b439630 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_79e697();
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl
index 749c440..7f38d7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_79e697() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl
index 749c440..7f38d7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_79e697() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_79e697()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl
index c2a74cc..db0e10b 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_79e697() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_79e697() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm
index d065e02..f2fbe77 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_79e697 "textureLoad_79e697"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -92,7 +92,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl
index 9d4fc79..1ff2e59 100644
--- a/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/79e697.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_79e697() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_79e697();
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl
index d940769..3efb199 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7ab4df();
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
index a09a0ee..1d9121c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7ab4df() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7ab4df()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
index a09a0ee..1d9121c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7ab4df() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7ab4df()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl
index d1fae76..e6d17be 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7ab4df() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7ab4df() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm
index 458664f..f81862d 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7ab4df "textureLoad_7ab4df"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -94,7 +94,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2int %arg_1
          %41 = OpCompositeExtract %int %40 0
          %42 = OpCompositeExtract %int %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl
index 4543e16..41175c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7ab4df.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7ab4df() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7ab4df();
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl
index 57ebb8b..410b3e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: u32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7b63e0();
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
index 1cc6a2a..2b74548 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_7b63e0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
index 1cc6a2a..2b74548 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_7b63e0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7b63e0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl
index 8a5b922..31ff623 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_7b63e0() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_7b63e0() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm
index 1ea9301..0e3bd21 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7b63e0 "textureLoad_7b63e0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -87,7 +87,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl
index dfaaee8..0844a9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7b63e0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_7b63e0() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7b63e0();
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl
index b5e72bf..20b8d7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<u32>, sample_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7bee94();
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl
index ad95ae7..4ebcfe4 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7bee94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl
index ad95ae7..4ebcfe4 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7bee94() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7bee94()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl
index 9639f99..41e26e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_7bee94() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_7bee94() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm
index 95355c7..0a0a555 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7bee94 "textureLoad_7bee94"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpLoad %int %arg_2
          %34 = OpImageFetch %v4int %35 %36 Sample %37
diff --git a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl
index e3f0e45a..4b25e63 100644
--- a/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7bee94.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_7bee94() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7bee94();
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl
index c9fa2f7..74a4d2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7c90e5();
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
index d2430ae..adb21c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7c90e5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7c90e5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
index d2430ae..adb21c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_7c90e5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7c90e5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl
index 4bc03a8..43d62f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7c90e5() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_7c90e5() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm
index 036228b..06911d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7c90e5 "textureLoad_7c90e5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -92,7 +92,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl
index 717d15e..5335a48 100644
--- a/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7c90e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_7c90e5() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7c90e5();
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl
index 0846841..3200785 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dab57();
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.dxc.hlsl
index b303aea..d74ccec 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7dab57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dab57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.fxc.hlsl
index b303aea..d74ccec 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_7dab57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dab57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.spvasm
index 835b976..6767793 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7dab57 "textureLoad_7dab57"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -91,7 +91,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.wgsl
index 4b8fe54..0de61d8 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dab57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_7dab57() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dab57();
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl
index 98177ce..18a6996 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dd3d5();
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl
index 8fad657..2491ba2 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7dd3d5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dd3d5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl
index 8fad657..2491ba2 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7dd3d5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7dd3d5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.spvasm
index 5ac32a0..c0db1c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7dd3d5 "textureLoad_7dd3d5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.wgsl
index 758c417..81bfae8 100644
--- a/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7dd3d5.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_7dd3d5() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7dd3d5();
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl
index 2b5c351..50cdda9 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7e5cbc();
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl
index 24f4780..559d859 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7e5cbc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7e5cbc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl
index 24f4780..559d859 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_7e5cbc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_7e5cbc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.spvasm
index 085f37d..e881951 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7e5cbc "textureLoad_7e5cbc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
          %27 = OpVectorShuffle %v4float %24 %24 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.wgsl
index d8f29d0..86cbca4 100644
--- a/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7e5cbc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
 
 fn textureLoad_7e5cbc() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7e5cbc();
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl
index ab0f687..76b1acc 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: i32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7fd822();
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl
index 0e52b5b..3bbe66c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_7fd822() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl
index 0e52b5b..3bbe66c 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_7fd822() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_7fd822()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl
index b2ae5d0..e6bae46 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_7fd822() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_7fd822() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm
index d579f34..b07b905 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_7fd822 "textureLoad_7fd822"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %33 = OpLoad %12 %arg_0
+         %33 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4float %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl
index b54fc4a..6ff8575 100644
--- a/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/7fd822.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_7fd822() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_7fd822();
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl
index acfaaca..0ecc901 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read_write>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_80dae1();
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.dxc.hlsl
index 31376f6..14d423e 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_80dae1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_80dae1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.fxc.hlsl
index 31376f6..14d423e 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_80dae1() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_80dae1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.spvasm
index adc23f2..83af796 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_80dae1 "textureLoad_80dae1"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.wgsl
index 3a39758..feecea0 100644
--- a/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/80dae1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
 
 fn textureLoad_80dae1() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_80dae1();
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl
index d631f3d..c02e10f 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureLoad(texture: texture_1d<f32>, coords: i32, level: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_81c381();
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.dxc.hlsl
index 02fe205..78ae247 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_81c381() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.fxc.hlsl
index 02fe205..78ae247 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_81c381() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_81c381()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.glsl
index 575b05f..22bdc9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_81c381() {
   int arg_1 = 1;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_81c381() {
   int arg_1 = 1;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.spvasm
index f5851dc..809abe1 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_81c381 "textureLoad_81c381"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -81,7 +81,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
                OpStore %arg_2 %int_1
-         %26 = OpLoad %12 %arg_0
+         %26 = OpLoad %15 %arg_0
          %27 = OpLoad %int %arg_1
          %28 = OpLoad %int %arg_2
          %25 = OpImageFetch %v4float %26 %27 Lod %28
diff --git a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.wgsl
index dfa5384..8a62692 100644
--- a/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/81c381.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureLoad_81c381() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_81c381();
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl
index 9e6d775..0f5367b 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83162f();
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.dxc.hlsl
index bfa19e4..73d1fae 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_83162f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83162f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.fxc.hlsl
index bfa19e4..73d1fae 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_83162f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83162f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.spvasm
index 0c4e715..21d7556 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_83162f "textureLoad_83162f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.wgsl
index fd7464d..9b6ff4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83162f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read>;
 
 fn textureLoad_83162f() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83162f();
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl
index 2959149..1e090b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83cea4();
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.dxc.hlsl
index 8a805b7..20008d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_83cea4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83cea4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.fxc.hlsl
index 8a805b7..20008d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_83cea4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83cea4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl
index 79eb8e2..e5b34c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_83cea4() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_83cea4() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.spvasm
index 27ae440..9bd1320 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_83cea4 "textureLoad_83cea4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.wgsl
index d217ce1..03fb450 100644
--- a/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83cea4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read>;
 
 fn textureLoad_83cea4() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83cea4();
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl
index 3ecd324..cb62207 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read_write>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83d6e3();
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.dxc.hlsl
index 567fc1a..a937ab1 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_83d6e3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83d6e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.fxc.hlsl
index 567fc1a..a937ab1 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_83d6e3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_83d6e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl
index da9174d..756cc6c 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_83d6e3() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_83d6e3() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.spvasm
index b308a8c..1b7cfbc 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_83d6e3 "textureLoad_83d6e3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.wgsl
index 8db3018..b6d7fa8 100644
--- a/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/83d6e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
 
 fn textureLoad_83d6e3() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_83d6e3();
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl
index 4e347ae..b0c4f8b 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_848d85();
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.dxc.hlsl
index 836dd2c..cc18a8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_848d85() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_848d85()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.fxc.hlsl
index 836dd2c..cc18a8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_848d85() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_848d85()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.spvasm
index 5a9ead7..609e120 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_848d85 "textureLoad_848d85"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.wgsl
index 0bd3025..92a7cc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/848d85.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
 
 fn textureLoad_848d85() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_848d85();
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl
index 73569e5..368f9b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84a438();
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.dxc.hlsl
index 1cf8129..b7bf5d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_84a438() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84a438()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.fxc.hlsl
index 1cf8129..b7bf5d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_84a438() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84a438()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.spvasm
index 65b6736..a7b8e21 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_84a438 "textureLoad_84a438"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.wgsl
index 35e66d1..e979bca 100644
--- a/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84a438.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read_write>;
 
 fn textureLoad_84a438() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84a438();
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl
index 20c508f..27510e8 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84c728();
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.dxc.hlsl
index e0e0847..6bfced3 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84c728() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84c728()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.fxc.hlsl
index e0e0847..6bfced3 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84c728() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84c728()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl
index 9d220be..a8ece55 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_84c728() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_84c728() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.spvasm
index 20af337..89d5695 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_84c728 "textureLoad_84c728"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.wgsl
index cdaaf58..df76bf2 100644
--- a/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84c728.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read>;
 
 fn textureLoad_84c728() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84c728();
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl
index bedd0b0..cf6a665 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureLoad(texture: texture_2d<f32>, coords: vec2<u32>, level: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84dee1();
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl
index d1facd0..8fcd522 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84dee1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl
index d1facd0..8fcd522 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_84dee1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_84dee1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl
index 6677d82..e316a14 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_84dee1() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 vec4 textureLoad_84dee1() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm
index 53076ff..33e6eaf 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_84dee1 "textureLoad_84dee1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -82,7 +82,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %32 = OpLoad %uint %arg_2
          %29 = OpImageFetch %v4float %30 %31 Lod %32
diff --git a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl
index 45de583..d6cb104 100644
--- a/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/84dee1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureLoad_84dee1() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_84dee1();
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl
index 4793845..fbf6399 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8527b1();
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl
index f940f84..b98d743 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8527b1() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8527b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl
index f940f84..b98d743 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8527b1() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8527b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl
index 6115cce..8704ce4 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_8527b1() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_8527b1() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm
index 9329e89..b8bfbbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8527b1 "textureLoad_8527b1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -90,7 +90,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl
index 08127f3..26320a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8527b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_8527b1() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8527b1();
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl
index 6775dad..8c550f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_862833();
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.dxc.hlsl
index f0583c5..8696a76 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_862833() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_862833()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.fxc.hlsl
index f0583c5..8696a76 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_862833() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_862833()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl
index f65fdfd..1862846 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_862833() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_862833() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.spvasm
index d76a32d..66eb4c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_862833 "textureLoad_862833"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.wgsl
index 38faf09..133d165 100644
--- a/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/862833.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_862833() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_862833();
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl
index c74a65b..f2736e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_878e24();
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.dxc.hlsl
index 0b32612..7511c23 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_878e24() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_878e24()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.fxc.hlsl
index 0b32612..7511c23 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_878e24() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_878e24()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.spvasm
index c820927..7fa8603 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_878e24 "textureLoad_878e24"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.wgsl
index 22df143..5359709 100644
--- a/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/878e24.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_878e24() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_878e24();
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl
index dc4c18a..1cec0d5 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87be85();
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl
index 0fe464f..bc8a1af 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_87be85() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl
index 0fe464f..bc8a1af 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_87be85() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87be85()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl
index 9bddb01..7ae90f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_87be85() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_87be85() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm
index 799eba8..e2eafb0 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_87be85 "textureLoad_87be85"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -88,7 +88,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %31 = OpLoad %12 %arg_0
+         %31 = OpLoad %15 %arg_0
          %33 = OpLoad %v2int %arg_1
          %34 = OpCompositeExtract %int %33 0
          %35 = OpCompositeExtract %int %33 1
diff --git a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl
index 838ea54..88bbf7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/87be85.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_87be85() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87be85();
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl
index c5fe842..fb69513 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87f0a6();
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.dxc.hlsl
index b03a259..2662524 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_87f0a6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87f0a6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.fxc.hlsl
index b03a259..2662524 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_87f0a6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_87f0a6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.spvasm
index ab6d8b1..b96f099 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_87f0a6 "textureLoad_87f0a6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.wgsl
index afbcc74..cb32187 100644
--- a/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/87f0a6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_87f0a6() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_87f0a6();
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl
index 8d3c11d..1309959 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_881349();
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.dxc.hlsl
index 7c7b16e..8fb6c30 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_881349() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_881349()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.fxc.hlsl
index 7c7b16e..8fb6c30 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_881349() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_881349()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.spvasm
index c1db214..1c95907 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_881349 "textureLoad_881349"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.wgsl
index 2e0727e..5cfbfa3 100644
--- a/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/881349.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_881349() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_881349();
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl
index 62450a0..959c0ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_89620b();
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.dxc.hlsl
index 259acd6..9603afc 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_89620b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_89620b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.fxc.hlsl
index 259acd6..9603afc 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_89620b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_89620b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl
index 9e22b88..734eedc 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_89620b() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_89620b() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.spvasm
index 1fe94f3..501b77b 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_89620b "textureLoad_89620b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.wgsl
index fd7e0af..d4138ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/89620b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_89620b() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_89620b();
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl
index d80c04d..7667c60 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_897cf3();
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl
index d889222..6ca9088 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_897cf3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_897cf3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl
index d889222..6ca9088 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_897cf3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_897cf3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl
index 8cc2120..9e5591b 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_897cf3() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_897cf3() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm
index 0de255d..bdc985b 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_897cf3 "textureLoad_897cf3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4uint %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl
index f520542..9612bf1 100644
--- a/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/897cf3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_897cf3() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_897cf3();
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl
index c335ed0..b48aa26 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a291b();
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.dxc.hlsl
index 01d64f0..ca3d67d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8a291b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a291b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.fxc.hlsl
index 01d64f0..ca3d67d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8a291b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a291b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl
index a8871f0..9191929 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_8a291b() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_8a291b() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.spvasm
index 00d4441..e8ab30b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8a291b "textureLoad_8a291b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.wgsl
index c970818..67f067d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a291b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_8a291b() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a291b();
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl
index 2fa67f3..a378123 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a9988();
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.dxc.hlsl
index b0cd5c7..23985fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8a9988() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a9988()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.fxc.hlsl
index b0cd5c7..23985fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8a9988() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8a9988()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.spvasm
index 627c193..7fb5690 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8a9988 "textureLoad_8a9988"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.wgsl
index 8c9a362..c1b9001 100644
--- a/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8a9988.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read>;
 
 fn textureLoad_8a9988() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8a9988();
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl
index dc98d86..802d535 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 
 // fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8acf41();
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
index 31ed1c8..ded9b4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.dxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -122,8 +123,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
index 31ed1c8..ded9b4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.fxc.hlsl
@@ -33,6 +33,7 @@
 cbuffer cbuffer_ext_tex_params : register(b2, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float3 gammaCorrection(float3 v, GammaTransferParams params) {
@@ -122,8 +123,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8acf41()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
index a0832f6..cd23f2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
@@ -72,6 +72,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -109,10 +113,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -198,6 +198,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -235,10 +239,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
index 14e66f54..5b8bcaf 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
@@ -46,10 +46,10 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_ftou "tint_ftou"
                OpName %v "v"
                OpName %gammaCorrection "gammaCorrection"
@@ -130,12 +130,12 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 2
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %ExternalTextureParams 0 Offset 0
                OpMemberDecorate %ExternalTextureParams 1 Offset 4
                OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -183,10 +183,10 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
          %28 = OpTypeFunction %v2uint %v2float
 %float_4_29496704e_09 = OpConstant %float 4.29496704e+09
          %34 = OpConstantComposite %v2float %float_4_29496704e_09 %float_4_29496704e_09
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl
index e34ba2b..8e937cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 fn textureLoad_8acf41() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8acf41();
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl
index 0b13f7a..70d5733 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<bgra8unorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8b62fb();
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.dxc.hlsl
index 3b83134..ce6cbaa 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8b62fb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8b62fb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.fxc.hlsl
index 3b83134..ce6cbaa 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8b62fb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8b62fb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.spvasm
index 3e96981..63d7ac2 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8b62fb "textureLoad_8b62fb"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.wgsl
index 05af9db..7211fd4 100644
--- a/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8b62fb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<bgra8unorm, read_write>;
 
 fn textureLoad_8b62fb() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8b62fb();
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl
index 0f13200..2052602 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8bf8c2();
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl
index 19af547..cd7ebc5 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8bf8c2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8bf8c2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl
index 19af547..cd7ebc5 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8bf8c2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8bf8c2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl
index 87f64c58..d6e7eb3 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_8bf8c2() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_8bf8c2() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.spvasm
index 543b656..ec7a6bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8bf8c2 "textureLoad_8bf8c2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.wgsl
index c673b13..6758d40 100644
--- a/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8bf8c2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read_write>;
 
 fn textureLoad_8bf8c2() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8bf8c2();
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl
index e6edeea..bd97ec4 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8c6176();
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.dxc.hlsl
index d3aa584..5bef44a 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8c6176() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8c6176()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.fxc.hlsl
index d3aa584..5bef44a 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8c6176() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8c6176()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.spvasm
index f77114c..50e5106 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8c6176 "textureLoad_8c6176"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.wgsl
index 3a725fe..02c691a 100644
--- a/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8c6176.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
 
 fn textureLoad_8c6176() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8c6176();
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl
index 621370e..ceb31229 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: u32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ccbe3();
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
index fc74c4a..6ca6adb 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_8ccbe3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
index fc74c4a..6ca6adb 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_8ccbe3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_8ccbe3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl
index 0d609d0..858eede 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_8ccbe3() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_8ccbe3() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm
index d08c7e6..bec3c87 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8ccbe3 "textureLoad_8ccbe3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %12 %arg_0
+         %33 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpLoad %uint %arg_2
          %32 = OpImageFetch %v4float %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl
index 9cf13cd..8526761 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ccbe3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_8ccbe3() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ccbe3();
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl
index 28d2084..1dd8d11 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8d64c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.dxc.hlsl
index 968718a..b29b2ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8d64c3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8d64c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.fxc.hlsl
index 968718a..b29b2ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_8d64c3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8d64c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.spvasm
index 51ef2b4..3f81b1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8d64c3 "textureLoad_8d64c3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.wgsl
index 1ddecd2..d6f11b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8d64c3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32uint, read_write>;
 
 fn textureLoad_8d64c3() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8d64c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl
index c726205..a2c7054 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8db0ce();
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.dxc.hlsl
index 15d4647..ad408f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8db0ce() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8db0ce()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.fxc.hlsl
index 15d4647..ad408f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_8db0ce() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8db0ce()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl
index 09889aa..dda63d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_8db0ce() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_8db0ce() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.spvasm
index b466179..5648b2b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8db0ce "textureLoad_8db0ce"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.wgsl
index 9ba2aea..082c027 100644
--- a/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8db0ce.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_8db0ce() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8db0ce();
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl
index fa0e04e..52615e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e5032();
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.dxc.hlsl
index b4d2b2c..6e1ade1 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8e5032() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e5032()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.fxc.hlsl
index b4d2b2c..6e1ade1 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_8e5032() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e5032()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.spvasm
index 7ba2ae2..9acd14b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8e5032 "textureLoad_8e5032"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -91,7 +91,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.wgsl
index bf6e3df..98c6f1b 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e5032.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_8e5032() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e5032();
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl
index ba0ef61..e4219ba 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e68c9();
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.dxc.hlsl
index d497be5..14511da 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_8e68c9() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e68c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.fxc.hlsl
index d497be5..14511da 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_8e68c9() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8e68c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.spvasm
index eb36d3d..55215b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8e68c9 "textureLoad_8e68c9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.wgsl
index 9b3551c..f595dec 100644
--- a/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8e68c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
 
 fn textureLoad_8e68c9() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8e68c9();
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl
index 6277ace..de1587e 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8fc29b();
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.dxc.hlsl
index d582c5e..607f1ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8fc29b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8fc29b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.fxc.hlsl
index d582c5e..607f1ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_8fc29b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8fc29b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.spvasm
index 0566d10..3f54f58 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8fc29b "textureLoad_8fc29b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.wgsl
index fe022b4..ff20303 100644
--- a/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8fc29b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read_write>;
 
 fn textureLoad_8fc29b() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8fc29b();
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl
index a682488..61c7c41 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8snorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ff033();
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.dxc.hlsl
index c271001..779bffd 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8ff033() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8ff033()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.fxc.hlsl
index c271001..779bffd 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_8ff033() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_8ff033()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl
index d11a8c2..33e9223 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_8ff033() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_8ff033() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.spvasm
index 9dfd4d1..e1f38fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_8ff033 "textureLoad_8ff033"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.wgsl
index ae5b6d5..a0642a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/8ff033.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8snorm, read>;
 
 fn textureLoad_8ff033() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_8ff033();
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl
index 49f7f00..127816f 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_91ede5();
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.dxc.hlsl
index 657e793..000c8a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_91ede5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_91ede5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.fxc.hlsl
index 657e793..000c8a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_91ede5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_91ede5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.spvasm
index f0d21b9..73b09b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_91ede5 "textureLoad_91ede5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.wgsl
index 72abeaf..377d0c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/91ede5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read_write>;
 
 fn textureLoad_91ede5() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_91ede5();
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl
index 0a3054f..939b9fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9242e7();
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.dxc.hlsl
index eaf2e87..68eae07 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9242e7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9242e7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.fxc.hlsl
index eaf2e87..68eae07 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9242e7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9242e7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.spvasm
index 19ddf40..94f396d 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9242e7 "textureLoad_9242e7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.wgsl
index 970f5c8..4da783c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9242e7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
 
 fn textureLoad_9242e7() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9242e7();
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl
index f3e93f8..bd0d081 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read_write>, coords: u32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92dd61();
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.dxc.hlsl
index ba75be4..3186644 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_92dd61() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92dd61()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.fxc.hlsl
index ba75be4..3186644 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_92dd61() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92dd61()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.spvasm
index fe7d6af..6c3c52f 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_92dd61 "textureLoad_92dd61"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.wgsl
index 243b2d4..bc2885d 100644
--- a/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92dd61.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read_write>;
 
 fn textureLoad_92dd61() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92dd61();
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl
index 715e71a..950fec4 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<u32>, level: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92eb1f();
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
index 58accb7..2ebd7ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_92eb1f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92eb1f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
index 58accb7..2ebd7ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_92eb1f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_92eb1f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl
index 5c3e5b7..0b97805 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_92eb1f() {
   uvec3 arg_1 = uvec3(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_92eb1f() {
   uvec3 arg_1 = uvec3(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm
index 2b2db33..554a1b0 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_92eb1f "textureLoad_92eb1f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v3uint %arg_1
          %37 = OpLoad %int %arg_2
          %34 = OpImageFetch %v4uint %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl
index d550677..447d698 100644
--- a/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/92eb1f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_92eb1f() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_92eb1f();
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl
index 0c5b758..bbb090a 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_936952();
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.dxc.hlsl
index 2b12b61..0f718af 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_936952() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_936952()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.fxc.hlsl
index 2b12b61..0f718af 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_936952() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_936952()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl
index faeca41..583cf2a 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_936952() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_936952() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.spvasm
index b393095..36f974e 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_936952 "textureLoad_936952"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.wgsl
index 8327fc0..0ceeb8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/936952.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureLoad_936952() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_936952();
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl
index dc07042..b1e1830 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_93f23e();
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.dxc.hlsl
index fc5658a..69034ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_93f23e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_93f23e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.fxc.hlsl
index fc5658a..69034ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_93f23e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_93f23e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl
index 253466d..e2997a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_93f23e() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_93f23e() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.spvasm
index cb75210..fbe847d 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_93f23e "textureLoad_93f23e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.wgsl
index 278a336..adf7a98 100644
--- a/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/93f23e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read_write>;
 
 fn textureLoad_93f23e() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_93f23e();
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl
index 27e7199..0e0cc9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r8unorm, read>, coords: i32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_947107();
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.dxc.hlsl
index 8ad6337..35120a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_947107() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_947107()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.fxc.hlsl
index 8ad6337..35120a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_947107() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_947107()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.spvasm
index ab61fe2..08dcdc1 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_947107 "textureLoad_947107"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.wgsl
index c61f498..2b07c7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/947107.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r8unorm, read>;
 
 fn textureLoad_947107() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_947107();
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl
index 1ee8224..4bc1680 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_96efd5();
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl
index 4eadea0..aff4295 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_96efd5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl
index 4eadea0..aff4295 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_96efd5() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_96efd5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl
index 9839ce7..a31fc0a 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_96efd5() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_96efd5() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm
index e7be705..71c3234 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_96efd5 "textureLoad_96efd5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %31 = OpLoad %12 %arg_0
+         %31 = OpLoad %15 %arg_0
          %33 = OpLoad %v2uint %arg_1
          %34 = OpCompositeExtract %uint %33 0
          %35 = OpCompositeExtract %uint %33 1
diff --git a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl
index ec7cb98..03f78e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/96efd5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_96efd5() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_96efd5();
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl
index ebee11d..9e46bc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_970308();
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.dxc.hlsl
index 6b660b6..5fc0109 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_970308() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_970308()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.fxc.hlsl
index 6b660b6..5fc0109 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_970308() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_970308()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl
index 856629f..af4837c 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_970308() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_970308() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.spvasm
index 0e362cd..f6f4c60 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_970308 "textureLoad_970308"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.wgsl
index bc98298..0fe72f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/970308.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_970308() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_970308();
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl
index 9716e82..f261101 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<u32>, array_index: u32, level: u32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9885b0();
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl
index 9d9e354..cc362eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9885b0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl
index 9d9e354..cc362eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9885b0() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9885b0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl
index 1cbbbd2..965e8ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9885b0() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9885b0() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm
index 31ef564..c05d2e9 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9885b0 "textureLoad_9885b0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -91,7 +91,7 @@
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl
index a62241f..375c302 100644
--- a/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9885b0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9885b0() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9885b0();
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl
index 52046d1..35cd4f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_99d8fa();
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.dxc.hlsl
index 40210dc..1438eff 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_99d8fa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_99d8fa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.fxc.hlsl
index 40210dc..1438eff 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_99d8fa() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_99d8fa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.spvasm
index 6240460..6129bac 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_99d8fa "textureLoad_99d8fa"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.wgsl
index 3b1025a..bdb7fe2 100644
--- a/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/99d8fa.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read_write>;
 
 fn textureLoad_99d8fa() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_99d8fa();
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl
index 058003b..5b08b02 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a7c90();
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.dxc.hlsl
index 8274109..906bc34 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9a7c90() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a7c90()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.fxc.hlsl
index 8274109..906bc34 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9a7c90() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a7c90()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl
index 4073fff..0c2577d 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_9a7c90() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_9a7c90() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.spvasm
index fce9c3c..35bead5 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9a7c90 "textureLoad_9a7c90"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.wgsl
index ef552da..cc3a86f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a7c90.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8uint, read>;
 
 fn textureLoad_9a7c90() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a7c90();
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl
index 7d74700..387b472 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a8c1e();
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl
index 1e4c70d..8297abb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9a8c1e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a8c1e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl
index 1e4c70d..8297abb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9a8c1e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9a8c1e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl
index 8ae0e22..6962feb 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9a8c1e() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_9a8c1e() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.spvasm
index 5c2d6cb..16d03ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9a8c1e "textureLoad_9a8c1e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.wgsl
index a391c99..5ca2753 100644
--- a/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9a8c1e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_9a8c1e() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9a8c1e();
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl
index 2c470a0..00232dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<u32>, level: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9aa733();
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl
index f2728b6..0417205 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9aa733() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl
index f2728b6..0417205 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9aa733() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9aa733()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl
index d5b5d7c..3cee095 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_9aa733() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_9aa733() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm
index 8c73862..35403a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9aa733 "textureLoad_9aa733"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpLoad %int %arg_2
          %34 = OpImageFetch %v4int %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl
index 1505f5d..667ff5c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9aa733.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_9aa733() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9aa733();
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl
index 2d19f59..13ea9e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b2667();
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl
index b8c730d..b3bf33a 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_9b2667() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl
index b8c730d..b3bf33a 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_9b2667() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9b2667()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl
index bfce478..b0eb79c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_9b2667() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_9b2667() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm
index 32d4198..ecf9a4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9b2667 "textureLoad_9b2667"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl
index 85c0b3c..1d10dc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b2667.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_9b2667() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b2667();
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl
index 94bfb1a..041e643 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b5343();
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.dxc.hlsl
index 2e8b7e7..e9a4611 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9b5343() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9b5343()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.fxc.hlsl
index 2e8b7e7..e9a4611 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_9b5343() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9b5343()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl
index 4e0e7ba..465fe65 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_9b5343() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_9b5343() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.spvasm
index 17e941b..693bef5 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9b5343 "textureLoad_9b5343"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.wgsl
index 397e8d0..6effdf3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9b5343.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureLoad_9b5343() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9b5343();
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl
index 216d404..2b000c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2376();
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.dxc.hlsl
index 46f4f79..0deea94 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2376() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2376()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.fxc.hlsl
index 46f4f79..0deea94 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2376() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2376()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl
index 42a0dbe..2af9647 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9c2376() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9c2376() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.spvasm
index 0998985..db7fef8 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9c2376 "textureLoad_9c2376"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.wgsl
index 14e1aec..1f34ade 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2376.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_9c2376() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2376();
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl
index ee9bf4b..075d8f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2a14();
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.dxc.hlsl
index 72139f4..2a7427a 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2a14() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2a14()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.fxc.hlsl
index 72139f4..2a7427a 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9c2a14() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9c2a14()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.spvasm
index 8a38c31..e0c7800 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9c2a14 "textureLoad_9c2a14"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.wgsl
index 095ae07..f1abf9c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9c2a14.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read>;
 
 fn textureLoad_9c2a14() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9c2a14();
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl
index 6c3a0ee..d0cf111 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9cf7df();
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.dxc.hlsl
index 06d79e2..4b8c375 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9cf7df() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9cf7df()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.fxc.hlsl
index 06d79e2..4b8c375 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9cf7df() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9cf7df()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.spvasm
index 9b67e60..1e42441 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9cf7df "textureLoad_9cf7df"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -91,7 +91,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.wgsl
index 864d9f1..437c440 100644
--- a/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9cf7df.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_9cf7df() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9cf7df();
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl
index 737693d..981f3d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: i32, level: u32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9d70e9();
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
index b350648..65fef14 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9d70e9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
index b350648..65fef14 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9d70e9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9d70e9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl
index 11bbf01..f70c60f 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9d70e9() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9d70e9() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm
index 7b863b4..3f323cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9d70e9 "textureLoad_9d70e9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -94,7 +94,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2int %arg_1
          %41 = OpCompositeExtract %int %40 0
          %42 = OpCompositeExtract %int %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl
index f6f567d..543b18c 100644
--- a/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9d70e9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9d70e9() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9d70e9();
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl
index 301dcdf..36f4cbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9de6f5();
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.dxc.hlsl
index c343e01..74d876e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9de6f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9de6f5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.fxc.hlsl
index c343e01..74d876e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_9de6f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9de6f5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl
index 5c9ea9a..f389f23 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9de6f5() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_9de6f5() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.spvasm
index 6fe7d66..205dd7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9de6f5 "textureLoad_9de6f5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.wgsl
index b6e6d6b..a7252b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9de6f5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_9de6f5() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9de6f5();
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl
index 3c73ab1..cd65a5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureLoad(texture: texture_depth_2d, coords: vec2<u32>, level: u32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9ed19e();
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
index a1e972e..0d647c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_9ed19e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
index a1e972e..0d647c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 float textureLoad_9ed19e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_9ed19e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl
index e860568..63b0f31 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_9ed19e() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_1;
 float textureLoad_9ed19e() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm
index d0c736b..8b9c284 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9ed19e "textureLoad_9ed19e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %31 = OpLoad %12 %arg_0
+         %31 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpLoad %uint %arg_2
          %30 = OpImageFetch %v4float %31 %32 Lod %33
diff --git a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl
index acdd923..04eaaa4 100644
--- a/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9ed19e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureLoad_9ed19e() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9ed19e();
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl
index f482405..6782b31 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32uint, read_write>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fa9fd();
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl
index 8b44276..3858425 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fa9fd() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fa9fd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl
index 8b44276..3858425 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fa9fd() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fa9fd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.spvasm
index ad65816..55a2677 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9fa9fd "textureLoad_9fa9fd"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.wgsl
index 7513fac..950a403 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fa9fd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32uint, read_write>;
 
 fn textureLoad_9fa9fd() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fa9fd();
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl
index 84b8a0b..7d91144 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: u32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fbfd9();
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
index 189bc67..6ac0085 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9fbfd9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
index 189bc67..6ac0085 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_9fbfd9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fbfd9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl
index 75e1a41..04c9f2b 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9fbfd9() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_9fbfd9() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm
index 5e8543d..81bd1b0 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9fbfd9 "textureLoad_9fbfd9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -92,7 +92,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %uint_1
-         %36 = OpLoad %16 %arg_0
+         %36 = OpLoad %19 %arg_0
          %38 = OpLoad %v2int %arg_1
          %39 = OpCompositeExtract %int %38 0
          %40 = OpCompositeExtract %int %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl
index 05e6e32..279eb46 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fbfd9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_9fbfd9() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fbfd9();
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl
index eac5dd5..39ac799 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fd7be();
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.dxc.hlsl
index 10d891b..b9393ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fd7be() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fd7be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.fxc.hlsl
index 10d891b..b9393ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_9fd7be() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_9fd7be()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.spvasm
index d3f4dfb..0a9db51 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_9fd7be "textureLoad_9fd7be"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.wgsl
index 1174e74..bfd0c7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/9fd7be.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_9fd7be() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_9fd7be();
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl
index 6a9f582..946364a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a03af1();
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.dxc.hlsl
index 9aa4bcd..de3a220 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a03af1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a03af1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.fxc.hlsl
index 9aa4bcd..de3a220 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a03af1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a03af1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl
index d5dd44d..d64066b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_a03af1() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_a03af1() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.spvasm
index a749186..0e9bdec 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a03af1 "textureLoad_a03af1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.wgsl
index 4c78e58..9df72d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a03af1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_a03af1() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a03af1();
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl
index f5f8c1e..5841620 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureLoad(texture: texture_2d_array<u32>, coords: vec2<u32>, array_index: i32, level: u32) -> vec4<u32>
@@ -44,8 +47,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a24be1();
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl
index 06ab8ba..90163d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a24be1() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a24be1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl
index 06ab8ba..90163d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a24be1() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a24be1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl
index f5ab5ea..44fb832 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_a24be1() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uvec4 textureLoad_a24be1() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm
index 3736cae..c4ca8b1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a24be1 "textureLoad_a24be1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -94,7 +94,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2uint %arg_1
          %41 = OpCompositeExtract %uint %40 0
          %42 = OpCompositeExtract %uint %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl
index 0e71828..3414b04 100644
--- a/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a24be1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureLoad_a24be1() -> vec4<u32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a24be1();
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl
index c8af820..a027c83 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a2b3f4();
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl
index d3d8adf..87f616c 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a2b3f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a2b3f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl
index d3d8adf..87f616c 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a2b3f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a2b3f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.spvasm
index 43f3dbc..562750d 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a2b3f4 "textureLoad_a2b3f4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.wgsl
index 425b766..93e40c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a2b3f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_a2b3f4() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a2b3f4();
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl
index f81826a..fd48b08 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read_write>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3733f();
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.dxc.hlsl
index 386f457..76ddf0c 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3733f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3733f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.fxc.hlsl
index 386f457..76ddf0c 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3733f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3733f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.spvasm
index 41f214f..05fc6d0 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a3733f "textureLoad_a3733f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.wgsl
index b08f59f..c5a69de 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3733f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read_write>;
 
 fn textureLoad_a3733f() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3733f();
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl
index 2df7d5f..170676c 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3f122();
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.dxc.hlsl
index 8625d51..7d394a1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3f122() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3f122()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.fxc.hlsl
index 8625d51..7d394a1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a3f122() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a3f122()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.spvasm
index 8513a3f..1041295 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a3f122 "textureLoad_a3f122"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -87,7 +87,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.wgsl
index 598d2bf..4ddee1d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a3f122.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_a3f122() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a3f122();
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl
index d36c950..83dcc4a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8uint, read_write>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a548a8();
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.dxc.hlsl
index f7f1cec..933558b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a548a8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a548a8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.fxc.hlsl
index f7f1cec..933558b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a548a8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a548a8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.spvasm
index e144faa..707c34b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a548a8 "textureLoad_a548a8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.wgsl
index 07b4ef2..29d4957 100644
--- a/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a548a8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8uint, read_write>;
 
 fn textureLoad_a548a8() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a548a8();
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl
index 18f11a6..49a14fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a54e11();
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.dxc.hlsl
index 119b0fd..0b97091 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a54e11() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a54e11()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.fxc.hlsl
index 119b0fd..0b97091 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a54e11() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a54e11()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.spvasm
index 6ecd4c6..687384c 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a54e11 "textureLoad_a54e11"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.wgsl
index 18b6b55..0fcb5e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a54e11.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_a54e11() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a54e11();
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl
index a96fe95..851f88f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a583c9();
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl
index 8582220..b193cd1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a583c9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl
index 8582220..b193cd1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a583c9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a583c9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl
index 2704a21..d8a9a25 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_a583c9() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_a583c9() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm
index 89fa229..083db42 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a583c9 "textureLoad_a583c9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %31 = OpLoad %v2int %arg_1
          %32 = OpLoad %int %arg_2
          %29 = OpImageFetch %v4float %30 %31 Sample %32
diff --git a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl
index 66a5ac6..a7b20f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a583c9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_a583c9() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a583c9();
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl
index 6e8cbe7..4747aef 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read_write>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5c4e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl
index 73ca742..c979dec 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a5c4e2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5c4e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl
index 73ca742..c979dec 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_a5c4e2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5c4e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.spvasm
index 113c4e8..cd73d9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a5c4e2 "textureLoad_a5c4e2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.wgsl
index 1f1aab2..7b53dbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5c4e2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
 
 fn textureLoad_a5c4e2() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5c4e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl
index c5c5a4f..9b873c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5e0a5();
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl
index 8352782..bcca55f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a5e0a5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5e0a5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl
index 8352782..bcca55f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a5e0a5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a5e0a5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl
index c040c39..bad0f30 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_a5e0a5() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_a5e0a5() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.spvasm
index bed15a0..f7941a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a5e0a5 "textureLoad_a5e0a5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.wgsl
index 647a656..0bf751e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a5e0a5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
 
 fn textureLoad_a5e0a5() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a5e0a5();
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl
index aa0d9ad..77424ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read_write>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a64b1d();
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.dxc.hlsl
index fc4e5b2..b637926 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a64b1d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a64b1d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.fxc.hlsl
index fc4e5b2..b637926 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a64b1d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a64b1d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.spvasm
index c9b661c..d28ad94 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a64b1d "textureLoad_a64b1d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.wgsl
index 58f99f9..a8e2988 100644
--- a/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a64b1d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read_write>;
 
 fn textureLoad_a64b1d() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a64b1d();
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl
index 3b09264..88c738f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8unorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6a85a();
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.dxc.hlsl
index 392f43c..de2c766 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a6a85a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6a85a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.fxc.hlsl
index 392f43c..de2c766 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a6a85a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6a85a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl
index da06216..7a61310 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a6a85a() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a6a85a() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.spvasm
index cf89ab7..cb042e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a6a85a "textureLoad_a6a85a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.wgsl
index 623b47a..8be09fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6a85a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8unorm, read>;
 
 fn textureLoad_a6a85a() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6a85a();
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl
index b2e74e2..35f9793 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6b61d();
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.dxc.hlsl
index b93ef47..54344fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a6b61d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6b61d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.fxc.hlsl
index b93ef47..54344fe 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a6b61d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a6b61d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl
index dc9fe0d..1bd32f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_a6b61d() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_a6b61d() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.spvasm
index f593061..6160f05 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a6b61d "textureLoad_a6b61d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.wgsl
index f4f6fe4..72422b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a6b61d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureLoad_a6b61d() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a6b61d();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl
index 8cdbfcb..862db21 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7444c();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.dxc.hlsl
index 40f84ad..401c551 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a7444c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7444c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.fxc.hlsl
index 40f84ad..401c551 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a7444c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7444c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl
index 630073f..467221f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_a7444c() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_a7444c() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.spvasm
index 59c282f..c315e9a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7444c "textureLoad_a7444c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.wgsl
index 7128ed6..f3e08f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7444c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_a7444c() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7444c();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl
index 6702556..e83bfc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7a3c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl
index 852d54f..35f5043 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a7a3c3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7a3c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl
index 852d54f..35f5043 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_a7a3c3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7a3c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl
index 72efddc..e6ed60f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_a7a3c3() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_a7a3c3() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.spvasm
index ef5512b..7f7853f 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7a3c3 "textureLoad_a7a3c3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.wgsl
index 7c744fe..2787868 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7a3c3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read>;
 
 fn textureLoad_a7a3c3() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7a3c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl
index a03ad92..2ce4027 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7bcb4();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl
index 5bc1b81..01ea998 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a7bcb4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7bcb4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl
index 5bc1b81..01ea998 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a7bcb4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7bcb4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.spvasm
index b18c5ee..2da68f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7bcb4 "textureLoad_a7bcb4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.wgsl
index af1dcba..13fdf16 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7bcb4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
 
 fn textureLoad_a7bcb4() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7bcb4();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl
index 8f790c1..71fb887 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7c171();
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.dxc.hlsl
index 0bcf29c..084993d 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a7c171() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7c171()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.fxc.hlsl
index 0bcf29c..084993d 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_a7c171() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a7c171()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.spvasm
index fc6baea..cd7b670 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a7c171 "textureLoad_a7c171"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.wgsl
index b51a2c0..d5cdd9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a7c171.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
 
 fn textureLoad_a7c171() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a7c171();
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl
index 83c2dda..ef7ff893 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a8549b();
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.dxc.hlsl
index 7cbed95..027ccb1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a8549b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a8549b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.fxc.hlsl
index 7cbed95..027ccb1 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_a8549b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a8549b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl
index 5c3aa62..144c1e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a8549b() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_a8549b() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.spvasm
index 4341e42..2fcba17 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a8549b "textureLoad_a8549b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.wgsl
index 46dcc06..4ffa8a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a8549b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32float, read>;
 
 fn textureLoad_a8549b() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a8549b();
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl
index 7bdc5bd..b4c8d31 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a92b18();
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.dxc.hlsl
index 54590ef..9223ad8 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a92b18() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a92b18()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.fxc.hlsl
index 54590ef..9223ad8 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_a92b18() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a92b18()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.spvasm
index d2fcedb..061fb7e 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a92b18 "textureLoad_a92b18"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.wgsl
index 1bca009..918040a 100644
--- a/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a92b18.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureLoad_a92b18() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a92b18();
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl
index d0c2ae1..7de7708 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureLoad(texture: texture_3d<u32>, coords: vec3<i32>, level: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a9a9f5();
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
index c25151b..d322722 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a9a9f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a9a9f5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
index c25151b..d322722 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_a9a9f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_a9a9f5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl
index d33baaf..78d39ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_a9a9f5() {
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler3D arg_0_1;
 uvec4 textureLoad_a9a9f5() {
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm
index 10caab1..305b66b 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_a9a9f5 "textureLoad_a9a9f5"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %35 = OpLoad %v3int %arg_1
          %36 = OpLoad %int %arg_2
          %33 = OpImageFetch %v4uint %34 %35 Lod %36
diff --git a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl
index 0c224cd..0e34b43 100644
--- a/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/a9a9f5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureLoad_a9a9f5() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_a9a9f5();
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl
index 927ed4d..e745f5c 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa2579();
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.dxc.hlsl
index 330326d..1de3460 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_aa2579() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa2579()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.fxc.hlsl
index 330326d..1de3460 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_aa2579() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa2579()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.spvasm
index e18a09c..0b2486a 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aa2579 "textureLoad_aa2579"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.wgsl
index fa57729..9b84972 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa2579.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_aa2579() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa2579();
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl
index 4bef059..620a4e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa6130();
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.dxc.hlsl
index 7397c525..3bda409 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_aa6130() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa6130()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.fxc.hlsl
index 7397c525..3bda409 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_aa6130() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa6130()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.spvasm
index 35536ee..8bf442a 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aa6130 "textureLoad_aa6130"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.wgsl
index 25f69ee..40de88c 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa6130.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32sint, read_write>;
 
 fn textureLoad_aa6130() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa6130();
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl
index 27f4195..11a242e 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa8a0d();
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl
index c9a2ba0..4826bbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aa8a0d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa8a0d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl
index c9a2ba0..4826bbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aa8a0d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aa8a0d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl
index fa38e42..3479319 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aa8a0d() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.spvasm
index 3c4b54c..a5e80ae 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aa8a0d "textureLoad_aa8a0d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.wgsl
index 40d672d..c28de5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aa8a0d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read>;
 
 fn textureLoad_aa8a0d() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aa8a0d();
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl
index 1c98014..9a5d28c 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae7f6();
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.dxc.hlsl
index faf56cb..09cf58a 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_aae7f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae7f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.fxc.hlsl
index faf56cb..09cf58a 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_aae7f6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae7f6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl
index 7d0b9f4..ed1a2d3 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_aae7f6() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_aae7f6() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.spvasm
index b16304a..ab0cdb8 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aae7f6 "textureLoad_aae7f6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.wgsl
index 5d0ffeb..d2540f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae7f6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureLoad_aae7f6() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae7f6();
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl
index bcb44bc..984ee0a 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae9c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.dxc.hlsl
index 0d9222b..1646ad5 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_aae9c3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae9c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.fxc.hlsl
index 0d9222b..1646ad5 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_aae9c3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aae9c3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.spvasm
index 007d47b..e8901e6 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aae9c3 "textureLoad_aae9c3"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.wgsl
index 39737c8..427b7e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aae9c3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_aae9c3() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aae9c3();
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl
index 005ef6a..cbedd42 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ac64f7();
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.dxc.hlsl
index 42eedd5..b130f78 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ac64f7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ac64f7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.fxc.hlsl
index 42eedd5..b130f78 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ac64f7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ac64f7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl
index fcc70b6..558d4c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_ac64f7() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_ac64f7() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.spvasm
index f086c4e..7bb2a26 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ac64f7 "textureLoad_ac64f7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.wgsl
index 7fa5e0b..1984ba3 100644
--- a/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ac64f7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_ac64f7() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ac64f7();
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl
index c41a995..bb1f153 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_acf22f();
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.dxc.hlsl
index 0346bf0..3f69fc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_acf22f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_acf22f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.fxc.hlsl
index 0346bf0..3f69fc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_acf22f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_acf22f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.spvasm
index c91b4d5..887e2c7 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_acf22f "textureLoad_acf22f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.wgsl
index 4ee3e7a..ed424f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/acf22f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read_write>;
 
 fn textureLoad_acf22f() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_acf22f();
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl
index 4895ab2..db61338 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32uint, read_write>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ad551e();
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.dxc.hlsl
index dd89d339..50ed891 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_ad551e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ad551e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.fxc.hlsl
index dd89d339..50ed891 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_ad551e() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ad551e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl
index 6870e20..3d4023a 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_ad551e() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2D arg_0;
 uvec4 textureLoad_ad551e() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.spvasm
index b900ee4..9cf7d3e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ad551e "textureLoad_ad551e"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.wgsl
index ac4b37d..60605f5 100644
--- a/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ad551e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32uint, read_write>;
 
 fn textureLoad_ad551e() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ad551e();
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl
index 1565801..67b1315 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aeae73();
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.dxc.hlsl
index 7c4a575..d3ba725 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aeae73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aeae73()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.fxc.hlsl
index 7c4a575..d3ba725 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aeae73() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aeae73()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl
index 37b6af1..ba41d62 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_aeae73() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_aeae73() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.spvasm
index 4e500c4..933b1c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aeae73 "textureLoad_aeae73"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.wgsl
index 1bf53a1..bb5167c 100644
--- a/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aeae73.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureLoad_aeae73() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aeae73();
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl
index 3fe6b3b..2580303 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aebc09();
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.dxc.hlsl
index 6fba6d1..bb9b0b0 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aebc09() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aebc09()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.fxc.hlsl
index 6fba6d1..bb9b0b0 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_aebc09() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_aebc09()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl
index 466384c..260bdfa 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aebc09() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_aebc09() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.spvasm
index b35d0e5..2f55a7c 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_aebc09 "textureLoad_aebc09"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.wgsl
index 8353bd8..c14d5db 100644
--- a/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/aebc09.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read>;
 
 fn textureLoad_aebc09() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_aebc09();
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl
index 48c71b5..6293b21 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_af0507();
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.dxc.hlsl
index dfdcaf0..fcd51ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_af0507() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_af0507()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.fxc.hlsl
index dfdcaf0..fcd51ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_af0507() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_af0507()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.spvasm
index 24d194a..8ba0699 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_af0507 "textureLoad_af0507"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.wgsl
index 27d59b5..f1b1a0d 100644
--- a/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/af0507.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_af0507() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_af0507();
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl
index 2c794e1..15dab20 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1bf79();
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.dxc.hlsl
index b5bd7ce..a7d333f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b1bf79() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1bf79()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.fxc.hlsl
index b5bd7ce..a7d333f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b1bf79() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1bf79()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl
index a452d73..c0f5fae 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_b1bf79() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_b1bf79() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.spvasm
index 0074855..d843625 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b1bf79 "textureLoad_b1bf79"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.wgsl
index 566a9ca..98ff34c 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1bf79.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read>;
 
 fn textureLoad_b1bf79() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1bf79();
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl
index c043da0..6329e8c 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1ca35();
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.dxc.hlsl
index 3749da4..739963f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b1ca35() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1ca35()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.fxc.hlsl
index 3749da4..739963f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b1ca35() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b1ca35()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.spvasm
index 8a856e5..cd669e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b1ca35 "textureLoad_b1ca35"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.wgsl
index 6245a7b..e3ed547 100644
--- a/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b1ca35.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_b1ca35() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b1ca35();
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl
index d6c0d61..2841349 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b24d27();
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.dxc.hlsl
index e4c00c4..6d6166e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b24d27() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b24d27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.fxc.hlsl
index e4c00c4..6d6166e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b24d27() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b24d27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl
index 73fec80..68134c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_b24d27() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_b24d27() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.spvasm
index e387e1a..bc55aa5 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b24d27 "textureLoad_b24d27"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.wgsl
index 687f17f..7dce7ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b24d27.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read>;
 
 fn textureLoad_b24d27() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b24d27();
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl
index e821a2c..4a3d8eb 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b25644();
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.dxc.hlsl
index 9cf5102..3439ab4 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b25644() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b25644()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.fxc.hlsl
index 9cf5102..3439ab4 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b25644() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b25644()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl
index 56f58f0..4613360 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_b25644() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_b25644() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.spvasm
index 8592d9c..1a8b780 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b25644 "textureLoad_b25644"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.wgsl
index ada6671..2a823e3 100644
--- a/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b25644.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_b25644() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b25644();
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl
index 92160fc..9ca042f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b27c33();
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.dxc.hlsl
index 59ec5f6..b37b923 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b27c33() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b27c33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.fxc.hlsl
index 59ec5f6..b37b923 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b27c33() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b27c33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl
index 9addb1b..d4c5a4c 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_b27c33() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_b27c33() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.spvasm
index 7ad19bd..04ddea9 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b27c33 "textureLoad_b27c33"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.wgsl
index b3b3535..1befb33 100644
--- a/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b27c33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
 
 fn textureLoad_b27c33() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b27c33();
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl
index 9272cf7..56f5295 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureLoad(texture: texture_2d_array<i32>, coords: vec2<i32>, array_index: u32, level: i32) -> vec4<i32>
@@ -44,8 +47,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b29f71();
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl
index 6ca1a9c..cf8a5ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b29f71() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl
index 6ca1a9c..cf8a5ce 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_b29f71() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b29f71()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl
index 9b55278..56b0a7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_b29f71() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 ivec4 textureLoad_b29f71() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm
index 1828d4d..e3be898 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b29f71 "textureLoad_b29f71"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -94,7 +94,7 @@
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %38 = OpLoad %16 %arg_0
+         %38 = OpLoad %19 %arg_0
          %40 = OpLoad %v2int %arg_1
          %41 = OpCompositeExtract %int %40 0
          %42 = OpCompositeExtract %int %40 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl
index 16cbc71..196ec60 100644
--- a/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b29f71.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureLoad_b29f71() -> vec4<i32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b29f71();
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl
index f9e4c88..48fa8db 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b4d6c4();
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl
index 0743ccf..38a6b9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b4d6c4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b4d6c4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl
index 0743ccf..38a6b9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b4d6c4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b4d6c4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.spvasm
index cb5979d..54f7b6800 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b4d6c4 "textureLoad_b4d6c4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.wgsl
index ad80dc9..b44d6b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b4d6c4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
 
 fn textureLoad_b4d6c4() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b4d6c4();
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl
index e34a03b..4fb9871 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b58c6d();
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.dxc.hlsl
index c2aef32..27b194b 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b58c6d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b58c6d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.fxc.hlsl
index c2aef32..27b194b 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b58c6d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b58c6d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl
index de191c2..e473f2a 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b58c6d() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b58c6d() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.spvasm
index b61d684..8aea1ab 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b58c6d "textureLoad_b58c6d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.wgsl
index e46c9ca..8f7d8bc 100644
--- a/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b58c6d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureLoad_b58c6d() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b58c6d();
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl
index e2f57b0..d0b1f51 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32uint, read_write>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60a86();
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.dxc.hlsl
index 439e4fc..f608c22 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b60a86() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60a86()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.fxc.hlsl
index 439e4fc..f608c22 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_b60a86() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60a86()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.spvasm
index e454267..bfa7898 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b60a86 "textureLoad_b60a86"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.wgsl
index ce90e42..4b8d113 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60a86.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32uint, read_write>;
 
 fn textureLoad_b60a86() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60a86();
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl
index 8dd81af..850452c 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60db7();
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.dxc.hlsl
index 5a4de9f..0685dce 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b60db7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60db7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.fxc.hlsl
index 5a4de9f..0685dce 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_b60db7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b60db7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.spvasm
index dcd0060..8af6a17 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b60db7 "textureLoad_b60db7"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.wgsl
index 274972e..70961a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b60db7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_b60db7() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b60db7();
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl
index 9969b3c..02634ed 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: i32, level: i32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6ba5d();
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
index 9d4f673..a97e270 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_b6ba5d() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
index 9d4f673..a97e270 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_b6ba5d() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_b6ba5d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl
index 902968a..6338e81 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_b6ba5d() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_b6ba5d() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm
index 5a3e31a..4a0460d 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b6ba5d "textureLoad_b6ba5d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %int_1
-         %34 = OpLoad %12 %arg_0
+         %34 = OpLoad %15 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl
index 0dec3d3..2b380e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6ba5d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_b6ba5d() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6ba5d();
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl
index 9854162..44e7a4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6c458();
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.dxc.hlsl
index 4c3ce32..c34080f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b6c458() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b6c458()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.fxc.hlsl
index 4c3ce32..c34080f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b6c458() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b6c458()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl
index 4aaf72c..2e9e2f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_b6c458() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_b6c458() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.spvasm
index 9c10b60..78a90a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b6c458 "textureLoad_b6c458"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.wgsl
index 1ff9e60..a1e90e9 100644
--- a/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b6c458.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read>;
 
 fn textureLoad_b6c458() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b6c458();
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl
index e64a1fc..2acdf71 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<u32>, level: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b73f6b();
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
index ccb9f23..b242716 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b73f6b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b73f6b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
index ccb9f23..b242716 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b73f6b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b73f6b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl
index 48c041e..18508c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_b73f6b() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_b73f6b() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm
index b79444c..9d8cb4f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b73f6b "textureLoad_b73f6b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpLoad %int %arg_2
          %34 = OpImageFetch %v4uint %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl
index 1de9a0d..e2f4f66 100644
--- a/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b73f6b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_b73f6b() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b73f6b();
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl
index beccb65..081390f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75c8f();
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.dxc.hlsl
index 2a5036c..770e1d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b75c8f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75c8f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.fxc.hlsl
index 2a5036c..770e1d2 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_b75c8f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75c8f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl
index 101a5c6..0600d8e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_b75c8f() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_b75c8f() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.spvasm
index 3d566ef..affd524 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b75c8f "textureLoad_b75c8f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.wgsl
index e8d2825..d96a1bc 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75c8f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read_write>;
 
 fn textureLoad_b75c8f() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75c8f();
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl
index 019de92..f46b348 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<i32>, sample_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75d4a();
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
index b337d04..fefcecb 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b75d4a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
index b337d04..fefcecb 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b75d4a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b75d4a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl
index 1710173..8bc9e06 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_b75d4a() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_b75d4a() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm
index 43f1381..a606a7b 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b75d4a "textureLoad_b75d4a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %33 = OpLoad %v2int %arg_1
          %34 = OpLoad %uint %arg_2
          %31 = OpImageFetch %v4float %32 %33 Sample %34
diff --git a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl
index 7aa2c40..431e4ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b75d4a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_b75d4a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b75d4a();
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl
index 30bc97c..2500e84 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b7f74f();
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.dxc.hlsl
index b37c742..0aba05f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b7f74f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b7f74f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.fxc.hlsl
index b37c742..0aba05f 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b7f74f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b7f74f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl
index a3eeb51..5e1b77d 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_b7f74f() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_b7f74f() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.spvasm
index 4fecde7..6076350 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b7f74f "textureLoad_b7f74f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
          %27 = OpVectorShuffle %v4float %24 %24 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.wgsl
index dad5816..fd69329 100644
--- a/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b7f74f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read>;
 
 fn textureLoad_b7f74f() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b7f74f();
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl
index 8b3f68c..9ec34bc 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b80e7e();
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.dxc.hlsl
index 3d9031c..ad6e8c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b80e7e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b80e7e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.fxc.hlsl
index 3d9031c..ad6e8c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_b80e7e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b80e7e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl
index 342f0d4..e5f1f18 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b80e7e() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_b80e7e() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.spvasm
index efabe96..4f4497b 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b80e7e "textureLoad_b80e7e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.wgsl
index 07afba0..328cfc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b80e7e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureLoad_b80e7e() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b80e7e();
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl
index 7cafb19..9c14268 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b94d15();
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.dxc.hlsl
index 110daf9..47854ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b94d15() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b94d15()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.fxc.hlsl
index 110daf9..47854ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_b94d15() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_b94d15()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl
index f432305..0b8523e 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_b94d15() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_b94d15() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.spvasm
index f8aa522..b3a53c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_b94d15 "textureLoad_b94d15"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.wgsl
index d75349f..3ff4957 100644
--- a/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/b94d15.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_b94d15() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_b94d15();
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl
index 41e8f21..4722255 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba023a();
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.dxc.hlsl
index 6c2aa2a..30373b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba023a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba023a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.fxc.hlsl
index 6c2aa2a..30373b3 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba023a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba023a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl
index 40514cc..20b09b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ba023a() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 ivec4 textureLoad_ba023a() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.spvasm
index f075548..9e6c3d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ba023a "textureLoad_ba023a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.wgsl
index c7e8221..ddec7be 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba023a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureLoad_ba023a() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba023a();
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl
index bbc7603..640ce68 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba74b2();
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.dxc.hlsl
index b959ccb..50d648d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba74b2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba74b2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.fxc.hlsl
index b959ccb..50d648d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ba74b2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ba74b2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.spvasm
index ad0440d..ef73d5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ba74b2 "textureLoad_ba74b2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.wgsl
index f9e33c3..6235d53 100644
--- a/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ba74b2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureLoad_ba74b2() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ba74b2();
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl
index b4aa2be..9756e4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read_write>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_babdf3();
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.dxc.hlsl
index bd07703..412b1e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_babdf3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_babdf3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.fxc.hlsl
index bd07703..412b1e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_babdf3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_babdf3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.spvasm
index 7c6ba65..43dd09f 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_babdf3 "textureLoad_babdf3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.wgsl
index c3a581b..3ba96b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/babdf3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
 
 fn textureLoad_babdf3() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_babdf3();
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl
index 3b2f6d6..1497f98 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32uint, read_write>, coords: u32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bba04a();
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.dxc.hlsl
index 1c1aee4..ac3f50a 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bba04a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bba04a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.fxc.hlsl
index 1c1aee4..ac3f50a 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bba04a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bba04a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.spvasm
index 6c98a4a..e2569d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bba04a "textureLoad_bba04a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %26
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %uint %arg_1
          %27 = OpImageRead %v4uint %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.wgsl
index 0f6c213..b8a0538 100644
--- a/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bba04a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32uint, read_write>;
 
 fn textureLoad_bba04a() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bba04a();
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl
index 7eeb533..d29ae62 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bbb762();
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.dxc.hlsl
index 0c52b5b..0140c93 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_bbb762() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bbb762()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.fxc.hlsl
index 0c52b5b..0140c93 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_bbb762() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bbb762()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.spvasm
index 766feaa..3b2433e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bbb762 "textureLoad_bbb762"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.wgsl
index 4a9ed17..50c5053 100644
--- a/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bbb762.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read_write>;
 
 fn textureLoad_bbb762() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bbb762();
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl
index 35664fe..ddb98a9 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureLoad(texture: texture_1d<u32>, coords: u32, level: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc3201();
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.dxc.hlsl
index d8b5e32..8294802 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bc3201() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc3201()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.fxc.hlsl
index d8b5e32..8294802 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bc3201() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc3201()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.glsl
index 2147574..4302f7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_bc3201() {
   uint arg_1 = 1u;
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_bc3201() {
   uint arg_1 = 1u;
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.spvasm
index e9e5473..98111c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bc3201 "textureLoad_bc3201"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %uint_1
                OpStore %arg_2 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %31 = OpLoad %uint %arg_2
          %28 = OpImageFetch %v4uint %29 %30 Lod %31
diff --git a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.wgsl
index a65878a..fda4010 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc3201.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureLoad_bc3201() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc3201();
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl
index 7651f89..7966e02 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc882d();
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.dxc.hlsl
index 15f3d1c..0464091 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bc882d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc882d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.fxc.hlsl
index 15f3d1c..0464091 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bc882d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bc882d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.spvasm
index fe39ed4..3aaddc4 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bc882d "textureLoad_bc882d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.wgsl
index 391bf34..0ef5697 100644
--- a/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bc882d.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_bc882d() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bc882d();
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl
index 6e3c90e..08a054f 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureLoad(texture: texture_3d<f32>, coords: vec3<u32>, level: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bcbb3c();
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
index ceeee65..64b2a74 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_bcbb3c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
index ceeee65..64b2a74 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_bcbb3c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bcbb3c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl
index 4b623e8..e62c3ab 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_bcbb3c() {
   uvec3 arg_1 = uvec3(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_1;
 vec4 textureLoad_bcbb3c() {
   uvec3 arg_1 = uvec3(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm
index 0d07a38..ee16d24 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bcbb3c "textureLoad_bcbb3c"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %33 = OpLoad %v3uint %arg_1
          %34 = OpLoad %int %arg_2
          %31 = OpImageFetch %v4float %32 %33 Lod %34
diff --git a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl
index e50bc8d..17d9d7f 100644
--- a/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bcbb3c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureLoad_bcbb3c() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bcbb3c();
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl
index 081d32f..55dde22 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bd990a();
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.dxc.hlsl
index 5240c25..f43c24e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bd990a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bd990a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.fxc.hlsl
index 5240c25..f43c24e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_bd990a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bd990a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.spvasm
index 8d0265c..60fab74 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bd990a "textureLoad_bd990a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.wgsl
index 50e1c2b..b9f7dbe 100644
--- a/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bd990a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_bd990a() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bd990a();
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl
index 75649c1..d3e48a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bdc67a();
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.dxc.hlsl
index fbe9487..3c4fff1 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bdc67a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bdc67a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.fxc.hlsl
index fbe9487..3c4fff1 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_bdc67a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bdc67a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.spvasm
index 52b34c8..08c138c 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bdc67a "textureLoad_bdc67a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.wgsl
index 1a39631..3e822fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bdc67a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureLoad_bdc67a() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bdc67a();
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl
index a15bf51..13c0365 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bfd154();
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.dxc.hlsl
index 5b91ea6..3e7c11b 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bfd154() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bfd154()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.fxc.hlsl
index 5b91ea6..3e7c11b 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_bfd154() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_bfd154()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl
index 13db33f..26d5ef2 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_bfd154() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_bfd154() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.spvasm
index 2377d47..2862a2e 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_bfd154 "textureLoad_bfd154"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.wgsl
index 0ff6455..2d248f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/bfd154.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32uint, read>;
 
 fn textureLoad_bfd154() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_bfd154();
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl
index 64d36b9..56c4c7c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16float, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c02b74();
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.dxc.hlsl
index 2a93af7..6c5ae03 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c02b74() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c02b74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.fxc.hlsl
index 2a93af7..6c5ae03 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c02b74() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c02b74()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl
index 0923baf..9571baf 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c02b74() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c02b74() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.spvasm
index 41cc7e1..70d5d7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c02b74 "textureLoad_c02b74"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.wgsl
index 0cd7691..27fa896 100644
--- a/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c02b74.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16float, read>;
 
 fn textureLoad_c02b74() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c02b74();
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl
index ba9dd34..6da30b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c07013();
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.dxc.hlsl
index 19843ce..eab6aa0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c07013() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c07013()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.fxc.hlsl
index 19843ce..eab6aa0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c07013() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c07013()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl
index 89f98e0..9882043 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c07013() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c07013() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.spvasm
index 4a4cda5..d2cf29e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c07013 "textureLoad_c07013"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.wgsl
index 9799d07..1a84318 100644
--- a/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c07013.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read>;
 
 fn textureLoad_c07013() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c07013();
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl
index aa0d996..072ee39 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: u32, level: i32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c16e00();
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl
index 1eb72ca..05df0fe8 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_c16e00() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl
index 1eb72ca..05df0fe8 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_c16e00() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_c16e00()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl
index 74522cb..cafc2bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_c16e00() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_c16e00() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm
index 0de99bd..402dc46 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c16e00 "textureLoad_c16e00"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -91,7 +91,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %36 = OpLoad %12 %arg_0
+         %36 = OpLoad %15 %arg_0
          %38 = OpLoad %v2int %arg_1
          %39 = OpCompositeExtract %int %38 0
          %40 = OpCompositeExtract %int %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl
index 3ad0c41..905474a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c16e00.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_c16e00() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c16e00();
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl
index befde6b..4f0c483 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c21b33();
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.dxc.hlsl
index 011b307..ee0a240 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c21b33() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c21b33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.fxc.hlsl
index 011b307..ee0a240 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c21b33() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c21b33()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl
index 129b96f..72e4e3d 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c21b33() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c21b33() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.spvasm
index 5cece49..d2a68b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c21b33 "textureLoad_c21b33"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.wgsl
index 616ece3..bb8053b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c21b33.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_c21b33() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c21b33();
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl
index ee41a5a..f9a3785 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2a480();
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl
index 9018d90..c31983a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c2a480() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl
index 9018d90..c31983a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c2a480() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2a480()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl
index 9c9bcde..560476b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_c2a480() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_c2a480() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm
index 9a664db..895de24 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c2a480 "textureLoad_c2a480"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4int %33 %34 Lod %35
diff --git a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl
index 9f763f2..5f8a7c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2a480.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_c2a480() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2a480();
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl
index 70fb50e..d8729d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2d09a();
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.dxc.hlsl
index b8d958e..19cd4b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c2d09a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2d09a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.fxc.hlsl
index b8d958e..19cd4b6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c2d09a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c2d09a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl
index 7515b45..487dbb0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_c2d09a() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uvec4 textureLoad_c2d09a() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.spvasm
index 6d2eb1e..2ee86a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c2d09a "textureLoad_c2d09a"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.wgsl
index 81c73eb..4f6e22a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c2d09a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureLoad_c2d09a() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c2d09a();
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl
index 244d6e2..3a43ef4 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c378ee();
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl
index 7374756..1a2e23a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c378ee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c378ee()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl
index 7374756..1a2e23a 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c378ee() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c378ee()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl
index 568fd70..67d5ea2 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_c378ee() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_c378ee() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm
index 5ed73f4..eacd324 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c378ee "textureLoad_c378ee"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpLoad %int %arg_2
          %33 = OpImageFetch %v4uint %34 %35 Sample %36
diff --git a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl
index 13ff687..6b5bae0 100644
--- a/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c378ee.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_c378ee() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c378ee();
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl
index 94d0971..24d1a37 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c40dcb();
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.dxc.hlsl
index dffaaea..c11d963 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c40dcb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c40dcb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.fxc.hlsl
index dffaaea..c11d963 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c40dcb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c40dcb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl
index bd61997..fbda2e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c40dcb() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_c40dcb() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.spvasm
index b427041..23e1a11 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c40dcb "textureLoad_c40dcb"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.wgsl
index acb5f6c..f44e041 100644
--- a/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c40dcb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_c40dcb() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c40dcb();
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl
index f538c31..e7eb0de 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c456bc();
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.dxc.hlsl
index 2a79720..78a799f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c456bc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c456bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.fxc.hlsl
index 2a79720..78a799f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c456bc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c456bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl
index 154e333..80e5b12 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_c456bc() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_c456bc() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.spvasm
index 7ddecfa..f8032ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c456bc "textureLoad_c456bc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.wgsl
index ecfe490..cf2c8cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c456bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read>;
 
 fn textureLoad_c456bc() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c456bc();
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl
index de1989a..8608d4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5791b();
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.dxc.hlsl
index c769c63..4ac4ecb 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c5791b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5791b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.fxc.hlsl
index c769c63..4ac4ecb 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c5791b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5791b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl
index aca89d6..9f08fad 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c5791b() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c5791b() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.spvasm
index 1f7c2c3..0431e2d 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c5791b "textureLoad_c5791b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.wgsl
index d2a343a..e0d8b72 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5791b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read>;
 
 fn textureLoad_c5791b() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5791b();
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl
index 11dcd20..be3136e 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5c86d();
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.dxc.hlsl
index 7f36af4..b53f017 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c5c86d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5c86d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.fxc.hlsl
index 7f36af4..b53f017 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c5c86d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c5c86d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.spvasm
index c79c849..b83a83c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c5c86d "textureLoad_c5c86d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.wgsl
index d73374f..29e7cf9 100644
--- a/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c5c86d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_c5c86d() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c5c86d();
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl
index dc54bc2..fc6f130 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c66b20();
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.dxc.hlsl
index d7a2b92..0bdfb90 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c66b20() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c66b20()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.fxc.hlsl
index d7a2b92..0bdfb90 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c66b20() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c66b20()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl
index 5337ea4..48dfeba 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c66b20() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c66b20() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.spvasm
index e7fccb5..f54323d 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c66b20 "textureLoad_c66b20"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.wgsl
index 3c674b9..da96eb5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c66b20.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read>;
 
 fn textureLoad_c66b20() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c66b20();
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl
index e2b8b9a..7d8f26f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32float, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7cbed();
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.dxc.hlsl
index e9095b1..6f3c290 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c7cbed() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7cbed()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.fxc.hlsl
index e9095b1..6f3c290 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_c7cbed() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7cbed()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl
index f069e04..a6d26e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c7cbed() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_c7cbed() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.spvasm
index 5c6c350..61051f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c7cbed "textureLoad_c7cbed"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.wgsl
index f0b190b..6896c45 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7cbed.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32float, read>;
 
 fn textureLoad_c7cbed() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7cbed();
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl
index c3c24dc..9a7db02 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read_write>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7e313();
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.dxc.hlsl
index 6df03fa..8218071 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c7e313() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7e313()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.fxc.hlsl
index 6df03fa..8218071 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_c7e313() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c7e313()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.spvasm
index d2272fc..a4407e5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c7e313 "textureLoad_c7e313"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.wgsl
index 8b42055..9713645 100644
--- a/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c7e313.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read_write>;
 
 fn textureLoad_c7e313() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c7e313();
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl
index 5dfbe14..bf46c42 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read_write>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c80691();
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.dxc.hlsl
index b72c39e..993cf10 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c80691() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c80691()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.fxc.hlsl
index b72c39e..993cf10 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c80691() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c80691()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl
index 3717427..733b4b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c80691() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c80691() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.spvasm
index 0a6d57d..b62fa37 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c80691 "textureLoad_c80691"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.wgsl
index 8bacc2b..4cf00bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c80691.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
 
 fn textureLoad_c80691() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c80691();
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl
index a071033..2661d89 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<u32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c8ed19();
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.dxc.hlsl
index 9358999..795ca4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c8ed19() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c8ed19()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.fxc.hlsl
index 9358999..795ca4b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_c8ed19() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c8ed19()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.spvasm
index 70c1e93..60d5f05 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c8ed19 "textureLoad_c8ed19"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2uint %arg_1
          %36 = OpCompositeExtract %uint %35 0
          %37 = OpCompositeExtract %uint %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.wgsl
index 38fd06b..8edc92f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c8ed19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_c8ed19() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c8ed19();
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl
index 449e9c7..666e7b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba8snorm, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c98bf4();
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.dxc.hlsl
index cd8f62f..b4e7596 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_c98bf4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c98bf4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.fxc.hlsl
index cd8f62f..b4e7596 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_c98bf4() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c98bf4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.spvasm
index 4aa1093..43c6976 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c98bf4 "textureLoad_c98bf4"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.wgsl
index 0676874..39e0c33 100644
--- a/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c98bf4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba8snorm, read_write>;
 
 fn textureLoad_c98bf4() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c98bf4();
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl
index 29cae7e..07f54e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9b083();
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.dxc.hlsl
index 03afad8..b5e106f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9b083() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9b083()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.fxc.hlsl
index 03afad8..b5e106f 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9b083() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9b083()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.spvasm
index f5e8aec..c51d52c 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c9b083 "textureLoad_c9b083"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.wgsl
index 4959a2d..e9fafee 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9b083.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_c9b083() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9b083();
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl
index f0744bb..4c19674 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9cc40();
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.dxc.hlsl
index 699e8b2..e873f69 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c9cc40() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9cc40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.fxc.hlsl
index 699e8b2..e873f69 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_c9cc40() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9cc40()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl
index 139501f..7ec0f5d 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c9cc40() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_c9cc40() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.spvasm
index b08649f..066948b 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c9cc40 "textureLoad_c9cc40"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.wgsl
index 6bbcb29..fdd5ea4 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9cc40.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read>;
 
 fn textureLoad_c9cc40() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9cc40();
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl
index be0e04c..317aea1 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read_write>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9f310();
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.dxc.hlsl
index b30e278..292c1cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9f310() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9f310()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.fxc.hlsl
index b30e278..292c1cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_c9f310() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_c9f310()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl
index 8771212..66d6bc3 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c9f310() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2D arg_0;
 ivec4 textureLoad_c9f310() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.spvasm
index 69c235a..b758ec5 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_c9f310 "textureLoad_c9f310"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.wgsl
index 743e5fa..3461168 100644
--- a/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/c9f310.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read_write>;
 
 fn textureLoad_c9f310() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_c9f310();
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl
index 635d0aa..f17e92e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read_write>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cac876();
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.dxc.hlsl
index efa5239..8d66125 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cac876() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cac876()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.fxc.hlsl
index efa5239..8d66125 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cac876() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cac876()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.spvasm
index 88f3711..2597b63 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cac876 "textureLoad_cac876"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.wgsl
index 8f1c896..e467a06 100644
--- a/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cac876.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read_write>;
 
 fn textureLoad_cac876() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cac876();
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl
index ba3a2ad..f64e5db 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<i32>, sample_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cad5f2();
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
index f96cc3f..514639b 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cad5f2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cad5f2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
index f96cc3f..514639b 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cad5f2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cad5f2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl
index 493d17b..687f6e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_cad5f2() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_cad5f2() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm
index f758e69..6b2881d 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cad5f2 "textureLoad_cad5f2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpLoad %uint %arg_2
          %34 = OpImageFetch %v4uint %35 %36 Sample %37
diff --git a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl
index f4aee32..023971c 100644
--- a/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cad5f2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_cad5f2() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cad5f2();
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl
index ec3a5aa..e76d049 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<u32>, array_index: u32, level: i32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cb57c2();
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
index 283ab9c..fcb4d84 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_cb57c2() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
index 283ab9c..fcb4d84 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_cb57c2() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_cb57c2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl
index 6e99966..4318c40 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_cb57c2() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_cb57c2() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm
index 8f04441..bc5b707 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cb57c2 "textureLoad_cb57c2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -91,7 +91,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %36 = OpLoad %12 %arg_0
+         %36 = OpLoad %15 %arg_0
          %38 = OpLoad %v2uint %arg_1
          %39 = OpCompositeExtract %uint %38 0
          %40 = OpCompositeExtract %uint %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl
index 25ed728..33ad0c3 100644
--- a/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cb57c2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_cb57c2() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cb57c2();
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl
index 7831482..9cde467 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdbcf6();
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl
index c59542e..78910cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cdbcf6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdbcf6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl
index c59542e..78910cb 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cdbcf6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdbcf6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.spvasm
index de284d8..f52a839 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cdbcf6 "textureLoad_cdbcf6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -83,7 +83,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.wgsl
index 95237ea..3ad1dc7 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdbcf6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_cdbcf6() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdbcf6();
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl
index 0bd0d13..f62d342 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdccd2();
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.dxc.hlsl
index 7bc3eda..4ca6f04 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_cdccd2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdccd2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.fxc.hlsl
index 7bc3eda..4ca6f04 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_cdccd2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdccd2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.spvasm
index 3585c7c..3d24726 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cdccd2 "textureLoad_cdccd2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.wgsl
index b0591a9..04fb64a 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdccd2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_cdccd2() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdccd2();
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl
index d8168d3..c4e96e7 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdd343();
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.dxc.hlsl
index f0539d2..425615e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cdd343() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdd343()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.fxc.hlsl
index f0539d2..425615e 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_cdd343() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cdd343()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl
index 6af2aef..7a1fa7a 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_cdd343() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_cdd343() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.spvasm
index b3b5088..f0dda67 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cdd343 "textureLoad_cdd343"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.wgsl
index 3617f0f..27ffd14 100644
--- a/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cdd343.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureLoad_cdd343() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cdd343();
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl
index 50e7345..f99ef37 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cddf6b();
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.dxc.hlsl
index f8fb925..a5cff25 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cddf6b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cddf6b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.fxc.hlsl
index f8fb925..a5cff25 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_cddf6b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cddf6b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.spvasm
index 1415aa0..45c7ab9 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cddf6b "textureLoad_cddf6b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.wgsl
index 0929b10..9cf2f80 100644
--- a/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cddf6b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read_write>;
 
 fn textureLoad_cddf6b() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cddf6b();
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl
index 79fb125..115150f 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32sint, read_write>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cec477();
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.dxc.hlsl
index 8d89ed8..af12f86 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cec477() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cec477()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.fxc.hlsl
index 8d89ed8..af12f86 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_cec477() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cec477()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl
index 3c26487..a3ac203 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_cec477() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage3D arg_0;
 ivec4 textureLoad_cec477() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.spvasm
index a0cafad..090d12a 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cec477 "textureLoad_cec477"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.wgsl
index b745a48..0b319a8 100644
--- a/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cec477.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32sint, read_write>;
 
 fn textureLoad_cec477() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cec477();
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl
index 79c36d4..942ce61 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r8unorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cece6c();
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.dxc.hlsl
index fcf7c81..0481bb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_cece6c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cece6c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.fxc.hlsl
index fcf7c81..0481bb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_cece6c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_cece6c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.spvasm
index 7a6deb3..85a0825 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_cece6c "textureLoad_cece6c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.wgsl
index f929692..306af27 100644
--- a/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/cece6c.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r8unorm, read>;
 
 fn textureLoad_cece6c() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_cece6c();
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl
index 0ec1018..3314a97 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d02afc();
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.dxc.hlsl
index 4d10096..4df3a2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d02afc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d02afc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.fxc.hlsl
index 4d10096..4df3a2f 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d02afc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d02afc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl
index aef92c5..5fa7ca3 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_d02afc() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_d02afc() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.spvasm
index 61b98c9..e9c6e02 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d02afc "textureLoad_d02afc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.wgsl
index a8b26cf..f6dc25e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d02afc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read>;
 
 fn textureLoad_d02afc() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d02afc();
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl
index ae538f0..366df69 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d0e351();
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.dxc.hlsl
index 17cef22..21e4f31 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d0e351() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d0e351()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.fxc.hlsl
index 17cef22..21e4f31 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d0e351() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d0e351()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.spvasm
index 78aa59d..6c2bd99 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d0e351 "textureLoad_d0e351"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.wgsl
index 7063ce2..06c08a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d0e351.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureLoad_d0e351() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d0e351();
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl
index a9ce367..fd5347a 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d357bb();
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.dxc.hlsl
index fb7da63..58c3497 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d357bb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d357bb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.fxc.hlsl
index fb7da63..58c3497 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d357bb() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d357bb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl
index 0ead996..5610e98 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d357bb() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d357bb() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.spvasm
index 1c86d3a..e21974c 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d357bb "textureLoad_d357bb"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
          %27 = OpVectorShuffle %v4float %24 %24 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.wgsl
index 178d256..a3e5448 100644
--- a/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d357bb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read>;
 
 fn textureLoad_d357bb() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d357bb();
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl
index 7355b80..59e6f11 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d37a08();
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.dxc.hlsl
index bee0685..80b95be 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d37a08() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d37a08()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.fxc.hlsl
index bee0685..80b95be 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d37a08() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d37a08()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.spvasm
index 590bfea..477b3af 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d37a08 "textureLoad_d37a08"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.wgsl
index 82ce18f..904eafb 100644
--- a/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d37a08.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureLoad_d37a08() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d37a08();
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl
index 332c2b3..5c93b28 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d3d8fc();
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl
index 7c9df20..0bba584 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d3d8fc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d3d8fc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl
index 7c9df20..0bba584 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d3d8fc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d3d8fc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.spvasm
index 49bea60..5562c4c 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d3d8fc "textureLoad_d3d8fc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.wgsl
index ace0a33..dd3d51b 100644
--- a/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d3d8fc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureLoad_d3d8fc() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d3d8fc();
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl
index dee9065..eb73816 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d41c72();
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.dxc.hlsl
index a36fe12..56c0ff7 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d41c72() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d41c72()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.fxc.hlsl
index a36fe12..56c0ff7 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d41c72() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d41c72()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.spvasm
index f5eefe3..a50b0f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d41c72 "textureLoad_d41c72"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.wgsl
index 2b50c26..9e37a99 100644
--- a/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d41c72.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read_write>;
 
 fn textureLoad_d41c72() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d41c72();
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl
index bbff18f..0d48376 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d4df19();
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.dxc.hlsl
index 71d1407..df396ea 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d4df19() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d4df19()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.fxc.hlsl
index 71d1407..df396ea 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d4df19() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d4df19()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl
index 1540861..f8d3590 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d4df19() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d4df19() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.spvasm
index ed77726..bce9113 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d4df19 "textureLoad_d4df19"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 R32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 R32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.wgsl
index 2c2fa23..de566c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d4df19.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32uint, read>;
 
 fn textureLoad_d4df19() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d4df19();
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl
index 9b8ed12..90669ec 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d5c48d();
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.dxc.hlsl
index 413660d..27322c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d5c48d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d5c48d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.fxc.hlsl
index 413660d..27322c6 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d5c48d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d5c48d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl
index a87ad4b..76c46ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d5c48d() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_d5c48d() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.spvasm
index a90561a..17ba82f 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d5c48d "textureLoad_d5c48d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.wgsl
index e0f3e7e..970af4d 100644
--- a/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d5c48d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read>;
 
 fn textureLoad_d5c48d() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d5c48d();
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl
index 65597a5..eea2bc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d72de9();
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.dxc.hlsl
index 81ecfd2..b283e51 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d72de9() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d72de9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.fxc.hlsl
index 81ecfd2..b283e51 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d72de9() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d72de9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.spvasm
index 433d067..139f359 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d72de9 "textureLoad_d72de9"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.wgsl
index 2b2c0ad..0c3edc3 100644
--- a/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d72de9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
 
 fn textureLoad_d72de9() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d72de9();
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl
index 2c8f806..adfb1c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba32sint, read_write>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d7996a();
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.dxc.hlsl
index 2cac88e..210a000 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d7996a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d7996a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.fxc.hlsl
index 2cac88e..210a000 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d7996a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d7996a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.spvasm
index 34f95ea..fcb7c69 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d7996a "textureLoad_d7996a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.wgsl
index c947b87..48f898a 100644
--- a/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d7996a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba32sint, read_write>;
 
 fn textureLoad_d7996a() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d7996a();
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl
index 7617032..73418b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16uint, read_write>, coords: i32) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d79c5c();
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.dxc.hlsl
index 4acb808..610d076 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d79c5c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d79c5c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.fxc.hlsl
index 4acb808..610d076 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_d79c5c() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d79c5c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.spvasm
index 4c9b845..4805496 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d79c5c "textureLoad_d79c5c"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 1D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %27
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %int_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %int %arg_1
          %28 = OpImageRead %v4uint %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.wgsl
index 37e0c92..e657b4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d79c5c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16uint, read_write>;
 
 fn textureLoad_d79c5c() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d79c5c();
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl
index c104246..3d913a1 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<bgra8unorm, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d80ff3();
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.dxc.hlsl
index 95ddcc9..d306363 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d80ff3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d80ff3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.fxc.hlsl
index 95ddcc9..d306363 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d80ff3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d80ff3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.spvasm
index 32f08a5..1b40855 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d80ff3 "textureLoad_d80ff3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
          %27 = OpVectorShuffle %v4float %24 %24 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.wgsl
index 3bc39dc..9d56e24 100644
--- a/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d80ff3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<bgra8unorm, read_write>;
 
 fn textureLoad_d80ff3() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d80ff3();
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl
index e9f2a8b..1225320 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32float, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d81c57();
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.dxc.hlsl
index 2565f65..4241d9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d81c57() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d81c57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.fxc.hlsl
index 2565f65..4241d9e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_d81c57() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d81c57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.spvasm
index a3d951c..36d3f0e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d81c57 "textureLoad_d81c57"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.wgsl
index d98e4a9..d6ef4d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d81c57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32float, read>;
 
 fn textureLoad_d81c57() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d81c57();
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl
index 1279603..f69dbbf 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d85d61();
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.dxc.hlsl
index 2bbb542..c72edc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d85d61() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d85d61()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.fxc.hlsl
index 2bbb542..c72edc6 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_d85d61() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d85d61()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl
index 31c4c61..141575d 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d85d61() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_d85d61() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.spvasm
index 2937f72..4217456 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d85d61 "textureLoad_d85d61"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.wgsl
index de16a3e..f6795f3 100644
--- a/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d85d61.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32uint, read>;
 
 fn textureLoad_d85d61() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d85d61();
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl
index 8d15f1e..670792e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8617f();
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.dxc.hlsl
index 52f1f78..db760f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d8617f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8617f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.fxc.hlsl
index 52f1f78..db760f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_d8617f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8617f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.spvasm
index 02e8c7e..1397a4d 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d8617f "textureLoad_d8617f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -91,7 +91,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.wgsl
index f62aefd..6f57357 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8617f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureLoad_d8617f() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8617f();
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl
index db84f14..8e66d82 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read_write>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8be5a();
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.dxc.hlsl
index 6cdbda7..13e3382 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d8be5a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8be5a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.fxc.hlsl
index 6cdbda7..13e3382 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_d8be5a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d8be5a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.spvasm
index fc39d96..cc38109 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d8be5a "textureLoad_d8be5a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.wgsl
index 85e6b40..0c49b6b 100644
--- a/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d8be5a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read_write>;
 
 fn textureLoad_d8be5a() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d8be5a();
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl
index cfda6ae..7ebcc96 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d91f37();
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.dxc.hlsl
index 0b9a9f2..7a6d95f 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d91f37() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d91f37()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.fxc.hlsl
index 0b9a9f2..7a6d95f 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_d91f37() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_d91f37()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.spvasm
index cb33860..994deaa 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_d91f37 "textureLoad_d91f37"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpCompositeExtract %int %34 0
          %36 = OpCompositeExtract %int %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.wgsl
index 3084ae7..86bc61e 100644
--- a/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/d91f37.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureLoad_d91f37() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_d91f37();
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl
index 36bfdad..90d1419 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dab04f();
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.dxc.hlsl
index 806ff48..6d8a2d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dab04f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dab04f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.fxc.hlsl
index 806ff48..6d8a2d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dab04f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dab04f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.spvasm
index c941ebd..126eb11 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dab04f "textureLoad_dab04f"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.wgsl
index 7a3a010..3a3a1e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dab04f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureLoad_dab04f() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dab04f();
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl
index 9bd1f29..5097fa2 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dbd554();
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.dxc.hlsl
index aebed08..bf85784 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dbd554() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dbd554()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.fxc.hlsl
index aebed08..bf85784 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dbd554() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dbd554()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl
index 97f8de2..0d8fc7d 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dbd554() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dbd554() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.spvasm
index af6fe5b..b620acb 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dbd554 "textureLoad_dbd554"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.wgsl
index 822f324..f117309 100644
--- a/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dbd554.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32sint, read>;
 
 fn textureLoad_dbd554() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dbd554();
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl
index cb03785..3fa49bf 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd5859();
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.dxc.hlsl
index e07c802..02b1d84 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dd5859() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd5859()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.fxc.hlsl
index e07c802..02b1d84 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_dd5859() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd5859()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.spvasm
index dca75ad..f9ba0dd 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dd5859 "textureLoad_dd5859"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.wgsl
index ea0cf44..6a7d9b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd5859.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_dd5859() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd5859();
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl
index dae82f3..7cc58a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32float, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd8776();
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.dxc.hlsl
index 7998882..75dc73d 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_dd8776() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd8776()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.fxc.hlsl
index 7998882..75dc73d 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_dd8776() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dd8776()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.spvasm
index eca5b7a..7f34dad 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dd8776 "textureLoad_dd8776"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.wgsl
index d8449f7..29a2528 100644
--- a/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dd8776.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureLoad_dd8776() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dd8776();
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl
index 80e5fdd..2c1e544 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32sint, read>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ddeed3();
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.dxc.hlsl
index f92df41..0b18ec9 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ddeed3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ddeed3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.fxc.hlsl
index f92df41..0b18ec9 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ddeed3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ddeed3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl
index 22b873e..28c468c 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_ddeed3() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_ddeed3() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.spvasm
index 0c54284..5fa85fc 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ddeed3 "textureLoad_ddeed3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.wgsl
index cc97d65..3607977 100644
--- a/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ddeed3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32sint, read>;
 
 fn textureLoad_ddeed3() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ddeed3();
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl
index 9172d50..bdd45b8 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_de5a0e();
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.dxc.hlsl
index df65149..b378c9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_de5a0e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_de5a0e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.fxc.hlsl
index df65149..b378c9b 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_de5a0e() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_de5a0e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.spvasm
index 0bdc678..52064f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_de5a0e "textureLoad_de5a0e"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.wgsl
index b53c2f9..0a9fdc0 100644
--- a/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/de5a0e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_de5a0e() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_de5a0e();
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl
index 6600505..ac340c4 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dee8e7();
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.dxc.hlsl
index 786b570..106be0b 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dee8e7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dee8e7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.fxc.hlsl
index 786b570..106be0b 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dee8e7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dee8e7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl
index d8ed6cc..152d011 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dee8e7() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_dee8e7() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.spvasm
index 62b619c..9149415 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dee8e7 "textureLoad_dee8e7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.wgsl
index 3430369..e5223c9 100644
--- a/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dee8e7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read>;
 
 fn textureLoad_dee8e7() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dee8e7();
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl
index a5b763d..7a884f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rg32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rg32float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_defd9a();
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.dxc.hlsl
index c50ab2f..5776f28 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_defd9a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_defd9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.fxc.hlsl
index c50ab2f..5776f28 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_defd9a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_defd9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.spvasm
index 81a5d33..bc103c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_defd9a "textureLoad_defd9a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.wgsl
index de46243..a7b675f 100644
--- a/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/defd9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rg32float, read_write>;
 
 fn textureLoad_defd9a() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_defd9a();
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl
index fe35c49..8544304 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read>, coords: vec2<u32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dfdf3b();
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl
index 80fe75f..9bcfe4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dfdf3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dfdf3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl
index 80fe75f..9bcfe4e 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_dfdf3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_dfdf3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl
index 59ed12a..3196a41 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_dfdf3b() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_dfdf3b() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.spvasm
index 421c4d2..eeaeb05 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_dfdf3b "textureLoad_dfdf3b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpCompositeExtract %uint %36 0
          %38 = OpCompositeExtract %uint %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.wgsl
index 66f043a..e6aac08 100644
--- a/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/dfdf3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureLoad_dfdf3b() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_dfdf3b();
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl
index fb19fc7..f25d331 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e1c3cf();
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl
index 842abd2..41fe8a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e1c3cf() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e1c3cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl
index 842abd2..41fe8a3 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e1c3cf() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e1c3cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.spvasm
index 0178744..42c0da6 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e1c3cf "textureLoad_e1c3cf"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.wgsl
index 1c425ae..cb481cd 100644
--- a/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e1c3cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read_write>;
 
 fn textureLoad_e1c3cf() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e1c3cf();
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl
index 6f07c41..e814338 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2292f();
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.dxc.hlsl
index 73abb25..9876070 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e2292f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2292f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.fxc.hlsl
index 73abb25..9876070 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e2292f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2292f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl
index e8b32be..dde6392 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_e2292f() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_e2292f() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.spvasm
index 44fe00d..48d39d9 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e2292f "textureLoad_e2292f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.wgsl
index 6749706..6f8cb56 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2292f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read>;
 
 fn textureLoad_e2292f() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2292f();
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl
index b901bbc..68e1894 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2b3a1();
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl
index ab7b1c0..cfbb0a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e2b3a1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2b3a1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl
index ab7b1c0..cfbb0a6 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e2b3a1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2b3a1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.spvasm
index d7677d4..4fd1152 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e2b3a1 "textureLoad_e2b3a1"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.wgsl
index 89bc121..23e690b 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2b3a1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_e2b3a1() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2b3a1();
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl
index 0d1177f..e1d2b91 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16float, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2d7da();
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.dxc.hlsl
index 59b4397..db42d9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e2d7da() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2d7da()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.fxc.hlsl
index 59b4397..db42d9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e2d7da() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e2d7da()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.spvasm
index a38cab1..4539ac6 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e2d7da "textureLoad_e2d7da"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.wgsl
index 731fee5..9e2694d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e2d7da.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureLoad_e2d7da() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e2d7da();
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl
index 7f79af6..61a7197 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16sint, read_write>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e33285();
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.dxc.hlsl
index 110fa9f..4306412 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e33285() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e33285()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.fxc.hlsl
index 110fa9f..4306412 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_e33285() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e33285()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.spvasm
index bc91c4f..9fc0d50 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e33285 "textureLoad_e33285"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.wgsl
index 779ebca..53df822 100644
--- a/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e33285.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16sint, read_write>;
 
 fn textureLoad_e33285() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e33285();
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl
index 3920044..e878cd2 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureLoad(texture: texture_3d<i32>, coords: vec3<i32>, level: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e35f72();
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl
index afb2597..27333b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e35f72() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl
index afb2597..27333b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e35f72() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e35f72()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl
index fdca51c..3ad5bc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_e35f72() {
   ivec3 arg_1 = ivec3(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler3D arg_0_1;
 ivec4 textureLoad_e35f72() {
   ivec3 arg_1 = ivec3(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm
index 9ee4990..f68a67d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e35f72 "textureLoad_e35f72"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v3int %arg_1
          %37 = OpLoad %uint %arg_2
          %34 = OpImageFetch %v4int %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl
index dab10d5..fc1d8f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e35f72.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureLoad_e35f72() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e35f72();
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl
index 5636e60..2038fb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read>, coords: vec3<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3b08b();
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.dxc.hlsl
index 53d39c1..fbc0c72 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e3b08b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3b08b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.fxc.hlsl
index 53d39c1..fbc0c72 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e3b08b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3b08b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl
index 8811245..cb8a579 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_e3b08b() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_e3b08b() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.spvasm
index 54aaf34..1ac185e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e3b08b "textureLoad_e3b08b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.wgsl
index f6a7450..35874fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3b08b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read>;
 
 fn textureLoad_e3b08b() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3b08b();
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl
index 854a299..858b564 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<i32>, coords: vec2<i32>, sample_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3d2cc();
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
index 5711441..1c3466f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e3d2cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
index 5711441..1c3466f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e3d2cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e3d2cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl
index 981e6c5..b612924 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_e3d2cc() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2DMS arg_0_1;
 ivec4 textureLoad_e3d2cc() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm
index 03e9220..0c69a55 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e3d2cc "textureLoad_e3d2cc"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %34 = OpLoad %v2int %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4int %33 %34 Sample %35
diff --git a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl
index eab9a0e..4b84b3c 100644
--- a/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e3d2cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureLoad_e3d2cc() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e3d2cc();
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl
index 287ee1f..137c91f 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read_write>, coords: vec2<u32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e4051a();
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.dxc.hlsl
index 83251df..aa7385d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e4051a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e4051a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.fxc.hlsl
index 83251df..aa7385d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_e4051a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e4051a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.spvasm
index bad2f75..7f9af58 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e4051a "textureLoad_e4051a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.wgsl
index e278552..ccf916b 100644
--- a/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e4051a.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read_write>;
 
 fn textureLoad_e4051a() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e4051a();
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl
index 8f9d3b8..548c27d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<bgra8unorm, read>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e57e92();
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.dxc.hlsl
index e0930bd..fb2e9d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e57e92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e57e92()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.fxc.hlsl
index e0930bd..fb2e9d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e57e92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e57e92()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl
index 6d91a87..19db610 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_e57e92() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_e57e92() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.spvasm
index a9982d4..cef2a69 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e57e92 "textureLoad_e57e92"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.wgsl
index a038dd9..d63d074 100644
--- a/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e57e92.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureLoad_e57e92() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e57e92();
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl
index 6a23d8d..1bdf370 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read>, coords: vec3<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e59fdf();
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.dxc.hlsl
index 5355fa2..c526213 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_e59fdf() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e59fdf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.fxc.hlsl
index 5355fa2..c526213 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_e59fdf() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e59fdf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.spvasm
index 7595735..a59310c 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e59fdf "textureLoad_e59fdf"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v3uint = OpTypeVector %uint 3
      %uint_1 = OpConstant %uint 1
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.wgsl
index 7ddc9b1..5b106ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e59fdf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read>;
 
 fn textureLoad_e59fdf() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e59fdf();
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl
index 2e8fed9..07e2528 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32sint, read>, coords: vec3<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e65916();
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.dxc.hlsl
index ed5db4e..9274a73 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e65916() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e65916()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.fxc.hlsl
index ed5db4e..9274a73 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_e65916() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e65916()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.spvasm
index 552820f..3c98d0b 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e65916 "textureLoad_e65916"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -85,7 +85,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v3int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.wgsl
index 88dd10c..7c14266 100644
--- a/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e65916.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32sint, read>;
 
 fn textureLoad_e65916() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e65916();
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl
index 020eb36..62ac778 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16float, read>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e893d7();
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.dxc.hlsl
index e664e8b..6c9454a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e893d7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e893d7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.fxc.hlsl
index e664e8b..6c9454a 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e893d7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e893d7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl
index dc790e1..afeb9a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e893d7() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e893d7() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.spvasm
index 16e5ffe..7976cae 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e893d7 "textureLoad_e893d7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.wgsl
index e1ce8d8..ff55969 100644
--- a/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e893d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16float, read>;
 
 fn textureLoad_e893d7() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e893d7();
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl
index 2885d3c..7587f5e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8unorm, read>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e92dd0();
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.dxc.hlsl
index 16f2e5d..38dd8b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e92dd0() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e92dd0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.fxc.hlsl
index 16f2e5d..38dd8b7 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_e92dd0() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e92dd0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl
index 2b94bee..7fd1a77 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e92dd0() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_e92dd0() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.spvasm
index 40bdd69..5c2bf41 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e92dd0 "textureLoad_e92dd0"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -77,7 +77,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.wgsl
index 190063b..a7d3fb00 100644
--- a/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e92dd0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8unorm, read>;
 
 fn textureLoad_e92dd0() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e92dd0();
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl
index 32a568b..c209e3e 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16uint, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e9eb65();
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.dxc.hlsl
index 23f9d59..41210ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_e9eb65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e9eb65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.fxc.hlsl
index 23f9d59..41210ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_e9eb65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_e9eb65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.spvasm
index a622865..80a848d 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_e9eb65 "textureLoad_e9eb65"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.wgsl
index 83443e5..79b0ba8 100644
--- a/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/e9eb65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureLoad_e9eb65() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_e9eb65();
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl
index 4bb34ce..4774ef9 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba32float, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba32float, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ea2abd();
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.dxc.hlsl
index 23fe109..d13d5b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ea2abd() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ea2abd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.fxc.hlsl
index 23fe109..d13d5b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_ea2abd() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ea2abd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl
index dacc8cb..78136f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_ea2abd() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2D arg_0;
 vec4 textureLoad_ea2abd() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.spvasm
index 61fff1f..10849c5 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ea2abd "textureLoad_ea2abd"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.wgsl
index 0496754..c1af5ff 100644
--- a/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ea2abd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba32float, read>;
 
 fn textureLoad_ea2abd() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ea2abd();
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl
index d069904..392deba 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r32sint, read>, coords: vec2<i32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eb573b();
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.dxc.hlsl
index f10f4b7..3e28292 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_eb573b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eb573b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.fxc.hlsl
index f10f4b7..3e28292 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_eb573b() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eb573b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl
index 79e950b..a0355f7 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_eb573b() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_eb573b() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.spvasm
index edefadb..6ef0016 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_eb573b "textureLoad_eb573b"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %28
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2int %arg_1
          %29 = OpImageRead %v4int %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.wgsl
index 35f70b8..43420fb 100644
--- a/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/eb573b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32sint, read>;
 
 fn textureLoad_eb573b() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eb573b();
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl
index c4adaa32..c8977be 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureLoad(texture: texture_2d<u32>, coords: vec2<i32>, level: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ebfb92();
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
index 6ccb222..241886d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ebfb92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ebfb92()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
index 6ccb222..241886d 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ebfb92() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ebfb92()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl
index 9e0bab6..d3b2215 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_ebfb92() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2D arg_0_1;
 uvec4 textureLoad_ebfb92() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm
index eb628eb..280d948 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ebfb92 "textureLoad_ebfb92"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpLoad %uint %arg_2
          %34 = OpImageFetch %v4uint %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl
index 738e601..bf42299 100644
--- a/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ebfb92.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureLoad_ebfb92() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ebfb92();
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl
index 2aa3781..7cb132c 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba16uint, read>, coords: vec2<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ecc823();
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.dxc.hlsl
index 539a5b8..6740c9f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ecc823() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ecc823()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.fxc.hlsl
index 539a5b8..6740c9f8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ecc823() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ecc823()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl
index 769de61..a63aedb 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_ecc823() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_ecc823() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.spvasm
index 6f0fe8e..7aed389 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ecc823 "textureLoad_ecc823"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.wgsl
index 8322100..c3ec7b2 100644
--- a/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ecc823.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba16uint, read>;
 
 fn textureLoad_ecc823() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ecc823();
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl
index 02478b5..b05382b 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32sint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ed55a8();
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.dxc.hlsl
index 5e9f7f7..f33c6ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ed55a8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ed55a8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.fxc.hlsl
index 5e9f7f7..f33c6ef 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ed55a8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ed55a8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.spvasm
index fc1326e..2c38825 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ed55a8 "textureLoad_ed55a8"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.wgsl
index 7f6eb46..3bb7673 100644
--- a/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ed55a8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureLoad_ed55a8() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ed55a8();
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl
index 1091ec4..24ebb85 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16sint, read>, coords: vec3<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ee33c5();
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.dxc.hlsl
index dc91d38..5c82aa4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ee33c5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ee33c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.fxc.hlsl
index dc91d38..5c82aa4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_ee33c5() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ee33c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl
index 037e076..d809c95 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_ee33c5() {
   uvec3 arg_1 = uvec3(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage3D arg_0;
 ivec4 textureLoad_ee33c5() {
   uvec3 arg_1 = uvec3(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.spvasm
index f9cffcf..0858ce4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ee33c5 "textureLoad_ee33c5"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 3D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v3uint = OpTypeVector %uint 3
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.wgsl
index addd4b4..5fbf4c8 100644
--- a/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ee33c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16sint, read>;
 
 fn textureLoad_ee33c5() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ee33c5();
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl
index 9b8e27c..f08cc12 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rg32uint, read>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eecf7d();
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.dxc.hlsl
index f681048..5afef53 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_eecf7d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eecf7d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.fxc.hlsl
index f681048..5afef53 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_eecf7d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_eecf7d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.spvasm
index 49f6ab1..827acbf 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_eecf7d "textureLoad_eecf7d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,13 +34,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,12 +56,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -91,7 +91,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.wgsl
index 56f3ae7..29c4756 100644
--- a/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/eecf7d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureLoad_eecf7d() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_eecf7d();
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl
index d51cbd6..2035b61 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rg32sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rg32sint, read_write>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef2ec3();
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl
index dacf931..83759f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ef2ec3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef2ec3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl
index dacf931..83759f6 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_ef2ec3() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef2ec3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.spvasm
index 932fd9af..e166b3c 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ef2ec3 "textureLoad_ef2ec3"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rg32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rg32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.wgsl
index aa598ea..937889e 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef2ec3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rg32sint, read_write>;
 
 fn textureLoad_ef2ec3() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef2ec3();
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl
index 3283d0c..3232d78 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef5405();
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.dxc.hlsl
index feabd85..78c2689 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ef5405() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef5405()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.fxc.hlsl
index feabd85..78c2689 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_ef5405() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_ef5405()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.spvasm
index 91e43e6..b94b737 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ef5405 "textureLoad_ef5405"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rg32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -85,7 +85,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.wgsl
index c84120d..0d4b69a 100644
--- a/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ef5405.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32uint, read>;
 
 fn textureLoad_ef5405() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ef5405();
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl
index 3e69bcc..9526a13 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_efa787();
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.dxc.hlsl
index 4295f4e..7bd5101 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_efa787() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_efa787()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.fxc.hlsl
index 4295f4e..7bd5101 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_efa787() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_efa787()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl
index 9dcee3d..edcb522 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_efa787() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_efa787() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.spvasm
index eb117ad..9bc4f69 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_efa787 "textureLoad_efa787"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.wgsl
index 41501fc..d3a7444 100644
--- a/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/efa787.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_efa787() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_efa787();
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl
index 8a8d305..55b4cb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0514a();
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.dxc.hlsl
index 7b794b6..19da453 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f0514a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0514a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.fxc.hlsl
index 7b794b6..19da453 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f0514a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0514a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.spvasm
index 695b2ab..f876b91 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f0514a "textureLoad_f0514a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.wgsl
index 4633271..1303496 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0514a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
 
 fn textureLoad_f0514a() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0514a();
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl
index 102fe38..93912d1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<r32sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<r32sint, read>, coords: i32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f06b69();
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.dxc.hlsl
index 8597e60..e571a21 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f06b69() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f06b69()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.fxc.hlsl
index 8597e60..e571a21 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f06b69() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f06b69()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl
index e0e4fef..83cfc1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f06b69() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f06b69() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.spvasm
index 762070d..fd28ac7 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f06b69 "textureLoad_f06b69"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 R32i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 R32i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
@@ -83,7 +83,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %26
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %int_1
-         %28 = OpLoad %16 %arg_0
+         %28 = OpLoad %19 %arg_0
          %29 = OpLoad %int %arg_1
          %27 = OpImageRead %v4int %28 %29
                OpStore %res %27
diff --git a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.wgsl
index 7c5b122..95890e1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f06b69.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<r32sint, read>;
 
 fn textureLoad_f06b69() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f06b69();
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl
index 7b0d9d6..6d8216e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<f32>, coords: vec2<u32>, sample_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0abad();
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl
index af6a8f2..6515689 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f0abad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl
index af6a8f2..6515689 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f0abad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f0abad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl
index 365e433..5e22aff 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_f0abad() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 vec4 textureLoad_f0abad() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm
index 200d971..ac0df79 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f0abad "textureLoad_f0abad"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %33 = OpLoad %v2uint %arg_1
          %34 = OpLoad %int %arg_2
          %31 = OpImageFetch %v4float %32 %33 Sample %34
diff --git a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl
index d7241d6..e3b4842 100644
--- a/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f0abad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureLoad_f0abad() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f0abad();
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl
index 38f36f5..9a0f7ac 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_3d<r32float, read_write>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f1c549();
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.dxc.hlsl
index a392065..b156131 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f1c549() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f1c549()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.fxc.hlsl
index a392065..b156131 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture3D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f1c549() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f1c549()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl
index fb33236..f4866bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_f1c549() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image3D arg_0;
 vec4 textureLoad_f1c549() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.spvasm
index 75f9aff..45bddc9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f1c549 "textureLoad_f1c549"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.wgsl
index 4102491..3de8ed3 100644
--- a/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f1c549.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<r32float, read_write>;
 
 fn textureLoad_f1c549() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f1c549();
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl
index 5844107..0493233 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8unorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2a7ff();
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl
index 502c1de..4d8e9fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f2a7ff() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2a7ff()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl
index 502c1de..4d8e9fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f2a7ff() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2a7ff()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl
index c5c6046..f62098f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f2a7ff() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2D arg_0;
 vec4 textureLoad_f2a7ff() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.spvasm
index 984917a..02848ab 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f2a7ff "textureLoad_f2a7ff"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.wgsl
index 9e8a99b..ce2330a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2a7ff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8unorm, read>;
 
 fn textureLoad_f2a7ff() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2a7ff();
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl
index 8b2f48d..407b45c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r8unorm, read_write>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2bdd4();
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl
index c3c3268..f4a7448 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f2bdd4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2bdd4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl
index c3c3268..f4a7448 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f2bdd4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2bdd4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.spvasm
index 58fe026..604f2a2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f2bdd4 "textureLoad_f2bdd4"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.wgsl
index 28816de..792bb1c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2bdd4.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureLoad_f2bdd4() -> vec4<f32> {
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2bdd4();
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl
index a5f02d9..d2d5a1f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8sint, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2c311();
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.dxc.hlsl
index 4cc75ad..baa27cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_f2c311() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2c311()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.fxc.hlsl
index 4cc75ad..baa27cc 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_f2c311() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f2c311()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.spvasm
index b0040ce..72b1b9d 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f2c311 "textureLoad_f2c311"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.wgsl
index 5edb7af..552bbb6 100644
--- a/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f2c311.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureLoad_f2c311() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f2c311();
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl
index da73d0c..21ff45c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureLoad(texture: texture_2d_array<f32>, coords: vec2<u32>, array_index: u32, level: i32) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f348d9();
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl
index 964e928..6a2a970 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f348d9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl
index 964e928..6a2a970 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f348d9() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f348d9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl
index d9f29ef..a8dc4f9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_f348d9() {
   uvec2 arg_1 = uvec2(1u);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 vec4 textureLoad_f348d9() {
   uvec2 arg_1 = uvec2(1u);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm
index 7e82483..3473ec8 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f348d9 "textureLoad_f348d9"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -90,7 +90,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
                OpStore %arg_3 %int_1
-         %35 = OpLoad %12 %arg_0
+         %35 = OpLoad %15 %arg_0
          %37 = OpLoad %v2uint %arg_1
          %38 = OpCompositeExtract %uint %37 0
          %39 = OpCompositeExtract %uint %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl
index 88e0ca6..7517510 100644
--- a/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f348d9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureLoad_f348d9() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f348d9();
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl
index ab19e8a..71e5075 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8sint, read>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f35ac7();
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.dxc.hlsl
index abd6fd8..8b5483f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f35ac7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f35ac7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.fxc.hlsl
index abd6fd8..8b5483f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f35ac7() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f35ac7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl
index 9ca3507..969629e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f35ac7() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f35ac7() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.spvasm
index e7107fe..f423ee0 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f35ac7 "textureLoad_f35ac7"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.wgsl
index f709962..583c24a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f35ac7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8sint, read>;
 
 fn textureLoad_f35ac7() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f35ac7();
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl
index f6d0093..9784dea 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8unorm, read>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f379e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.dxc.hlsl
index eb9fa8e..3b7765f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f379e2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f379e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.fxc.hlsl
index eb9fa8e..3b7765f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f379e2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f379e2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl
index 0840172..95b301d 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f379e2() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f379e2() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.spvasm
index 89cdd25..e69066a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f379e2 "textureLoad_f379e2"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -86,7 +86,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.wgsl
index fac03cc..9671ed4 100644
--- a/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f379e2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureLoad_f379e2() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f379e2();
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl
index 4b98bdf..c84347c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16uint, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16uint, read>, coords: vec3<i32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f56e6f();
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.dxc.hlsl
index da0245c..9d4f9ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_f56e6f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f56e6f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.fxc.hlsl
index da0245c..9d4f9ee 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_f56e6f() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f56e6f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl
index 13ea0c0..caf2692 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_f56e6f() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage3D arg_0;
 uvec4 textureLoad_f56e6f() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.spvasm
index 83be596..f0c1569 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f56e6f "textureLoad_f56e6f"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 3D 0 0 0 2 Rgba16ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -84,7 +84,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %29
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v3int %arg_1
          %30 = OpImageRead %v4uint %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.wgsl
index e8e0bf3..97e650e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f56e6f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16uint, read>;
 
 fn textureLoad_f56e6f() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f56e6f();
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl
index a69e334..53cbf36 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d<r8unorm, read>, coords: vec2<u32>) -> vec4<f32>
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5aee2();
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.dxc.hlsl
index a733e68..b2950ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f5aee2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5aee2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.fxc.hlsl
index a733e68..b2950ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f5aee2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5aee2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.spvasm
index f1d0609..9c91cfb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f5aee2 "textureLoad_f5aee2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2uint %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.wgsl
index 5a3fe23..819c5b4 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5aee2.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r8unorm, read>;
 
 fn textureLoad_f5aee2() -> vec4<f32> {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5aee2();
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl
index 3e9f546..23ac3fa 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5fbc6();
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl
index 289ec5c..23e7784 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f5fbc6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5fbc6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl
index 289ec5c..23e7784 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f5fbc6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f5fbc6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.spvasm
index ac01d90..8ba105c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f5fbc6 "textureLoad_f5fbc6"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.wgsl
index 9e33fb9..fcb6c6f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f5fbc6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_f5fbc6() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f5fbc6();
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl
index 722f2ae..fe4b5a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rg32float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rg32float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f74bd8();
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.dxc.hlsl
index 1f378f5..2c70dd5 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f74bd8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f74bd8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.fxc.hlsl
index 1f378f5..2c70dd5 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f74bd8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f74bd8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.spvasm
index 10b29ee..c20cf46 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f74bd8 "textureLoad_f74bd8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rg32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rg32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -81,7 +81,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.wgsl
index 8476e0a..6dcf6b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f74bd8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rg32float, read>;
 
 fn textureLoad_f74bd8() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f74bd8();
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl
index bacdf02..588bca2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read_write>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f3bc();
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl
index 1fb5b55..d7cb74c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f7f3bc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f3bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl
index 1fb5b55..d7cb74c 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f7f3bc() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f3bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.spvasm
index 917fbbf..4832fcc 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f7f3bc "textureLoad_f7f3bc"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -78,7 +78,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.wgsl
index e671156..c3182bb 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f3bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read_write>;
 
 fn textureLoad_f7f3bc() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f3bc();
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl
index ca237ad..715d3d6 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read>, coords: vec2<u32>, array_index: u32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f936();
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.dxc.hlsl
index 1b574c4..9b587f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f7f936() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f936()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.fxc.hlsl
index 1b574c4..9b587f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f7f936() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f7f936()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl
index 10fac44..b3fc1e4 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f7f936() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 vec4 textureLoad_f7f936() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.spvasm
index fb49fa6..78af4e2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f7f936 "textureLoad_f7f936"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -84,7 +84,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %uint_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %33 = OpCompositeExtract %uint %32 0
          %34 = OpCompositeExtract %uint %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.wgsl
index 3d6cede..155e1df 100644
--- a/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f7f936.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureLoad_f7f936() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f7f936();
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl
index 9da289e..bd38462 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<r32float, read_write>, coords: vec2<i32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f81792();
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.dxc.hlsl
index 5628bdd..d35e05a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f81792() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f81792()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.fxc.hlsl
index 5628bdd..d35e05a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f81792() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f81792()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl
index fb6298f..5388c69 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_f81792() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 vec4 textureLoad_f81792() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.spvasm
index 1efd498..199bd9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f81792 "textureLoad_f81792"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %30 = OpLoad %12 %arg_0
+         %30 = OpLoad %15 %arg_0
          %32 = OpLoad %v2int %arg_1
          %33 = OpCompositeExtract %int %32 0
          %34 = OpCompositeExtract %int %32 1
diff --git a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.wgsl
index 096b9d1..ef1c86f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f81792.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureLoad_f81792() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f81792();
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl
index 3ba0890..c6a51fd 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba32float, read_write>, coords: u32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f82eb2();
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.dxc.hlsl
index e4e3c25..6cbf8f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f82eb2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f82eb2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.fxc.hlsl
index e4e3c25..6cbf8f0 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture1D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f82eb2() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f82eb2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.spvasm
index 203a2fe..8526fde 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f82eb2 "textureLoad_f82eb2"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -76,7 +76,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %uint_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %uint %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.wgsl
index f99b098..becd7c1 100644
--- a/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f82eb2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba32float, read_write>;
 
 fn textureLoad_f82eb2() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f82eb2();
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl
index 4874099..c88a83f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureLoad(texture: texture_2d<i32>, coords: vec2<i32>, level: u32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f85291();
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl
index b96b330..4a6154e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f85291() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl
index b96b330..4a6154e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f85291() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f85291()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl
index 18cec19..ac72d70 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_f85291() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 uniform highp isampler2D arg_0_1;
 ivec4 textureLoad_f85291() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm
index d16b465..388b6a7 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f85291 "textureLoad_f85291"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpLoad %uint %arg_2
          %34 = OpImageFetch %v4int %35 %36 Lod %37
diff --git a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl
index 3dab27c..3ec7a32 100644
--- a/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f85291.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureLoad_f85291() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f85291();
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl
index 51fb470..ef4b947 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<bgra8unorm, read>;
 
 // fn textureLoad(texture: texture_storage_3d<bgra8unorm, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f8a2e8();
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl
index af24c87..0426ebc 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f8a2e8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f8a2e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl
index af24c87..0426ebc 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_f8a2e8() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f8a2e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl
index e6c68dd..4ea7050 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f8a2e8() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image3D arg_0;
 vec4 textureLoad_f8a2e8() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.spvasm
index 09a3976..fef9d46 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f8a2e8 "textureLoad_f8a2e8"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba8
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba8
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
          %29 = OpVectorShuffle %v4float %26 %26 2 1 0 3
diff --git a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.wgsl
index 0fd99b3..668b199 100644
--- a/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f8a2e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<bgra8unorm, read>;
 
 fn textureLoad_f8a2e8() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f8a2e8();
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl
index cc4dfdd..330f8bd 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<r32float, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<r32float, read_write>, coords: vec2<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f92c2d();
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.dxc.hlsl
index 9674d96..43e57b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f92c2d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f92c2d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.fxc.hlsl
index 9674d96..43e57b9 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_f92c2d() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f92c2d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl
index bb9a9ec..e330d29 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_f92c2d() {
   ivec2 arg_1 = ivec2(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2D arg_0;
 vec4 textureLoad_f92c2d() {
   ivec2 arg_1 = ivec2(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.spvasm
index 0fce71a..fa3b0f2 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f92c2d "textureLoad_f92c2d"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -49,12 +49,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 2 R32f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 2 R32f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v2int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.wgsl
index 630ec51..730c53f 100644
--- a/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f92c2d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<r32float, read_write>;
 
 fn textureLoad_f92c2d() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f92c2d();
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl
index 9d419bb..ba7691e 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba16sint, read>, coords: u32) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f9eaaf();
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl
index 5bb7b3d..8ca78a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f9eaaf() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f9eaaf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl
index 5bb7b3d..8ca78a0 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_f9eaaf() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_f9eaaf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl
index 5b9c66f..cf0d558 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f9eaaf() {
   uint arg_1 = 1u;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2D arg_0;
 ivec4 textureLoad_f9eaaf() {
   uint arg_1 = 1u;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.spvasm
index ceeb1d6..1bf9d94 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_f9eaaf "textureLoad_f9eaaf"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 1D 0 0 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_uint Function %27
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %uint_1
-         %29 = OpLoad %16 %arg_0
+         %29 = OpLoad %19 %arg_0
          %30 = OpLoad %uint %arg_1
          %28 = OpImageRead %v4int %29 %30
                OpStore %res %28
diff --git a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.wgsl
index 6a88876..48ca93a 100644
--- a/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/f9eaaf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba16sint, read>;
 
 fn textureLoad_f9eaaf() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_f9eaaf();
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl
index 833dcab..3f6607f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8sint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8sint, read_write>, coords: vec2<u32>) -> vec4<i32>
@@ -42,8 +45,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc47ff();
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.dxc.hlsl
index f590aaf..22d76ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_fc47ff() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc47ff()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.fxc.hlsl
index f590aaf..22d76ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2D<int4> arg_0 : register(u0, space1);
 
 int4 textureLoad_fc47ff() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc47ff()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.spvasm
index 84c087f..18fd280 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fc47ff "textureLoad_fc47ff"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 0 0 2 Rgba8i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %29
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %26
-         %31 = OpLoad %16 %arg_0
+         %31 = OpLoad %19 %arg_0
          %32 = OpLoad %v2uint %arg_1
          %30 = OpImageRead %v4int %31 %32
                OpStore %res %30
diff --git a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.wgsl
index af72a0e..1b1fcc8 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc47ff.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8sint, read_write>;
 
 fn textureLoad_fc47ff() -> vec4<i32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc47ff();
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl
index 05b2048..bbf3c5b 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba16sint, read>, coords: vec2<i32>, array_index: i32) -> vec4<i32>
@@ -43,8 +46,6 @@
   var res: vec4<i32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc6d36();
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.dxc.hlsl
index 92c2220..c4dcf9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_fc6d36() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc6d36()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.fxc.hlsl
index 92c2220..c4dcf9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 int4 textureLoad_fc6d36() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fc6d36()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl
index 7f83f4d..5cb5ef8 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_fc6d36() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 ivec4 textureLoad_fc6d36() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.spvasm
index 3cd29fa..70b7fcc 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fc6d36 "textureLoad_fc6d36"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4int
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4int Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %33 = OpLoad %16 %arg_0
+         %33 = OpLoad %19 %arg_0
          %35 = OpLoad %v2int %arg_1
          %36 = OpCompositeExtract %int %35 0
          %37 = OpCompositeExtract %int %35 1
diff --git a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.wgsl
index abdb939..a0874ad 100644
--- a/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fc6d36.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureLoad_fc6d36() -> vec4<i32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fc6d36();
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl
index 0e89e52..96bb659 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<u32>, sample_index: i32) -> f32
@@ -43,8 +46,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fcd23d();
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
index 9be30ef..6d061b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_fcd23d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
index 9be30ef..6d061b5 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 float textureLoad_fcd23d() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_fcd23d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl
index d3d5b55..94af830 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_fcd23d() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DMS arg_0_1;
 float textureLoad_fcd23d() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm
index d4e4335..e571439 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fcd23d "textureLoad_fcd23d"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %33 = OpLoad %12 %arg_0
+         %33 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpLoad %int %arg_2
          %32 = OpImageFetch %v4float %33 %34 Sample %35
diff --git a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl
index 11d70ea..38fe2f1 100644
--- a/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fcd23d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureLoad_fcd23d() -> f32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fcd23d();
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl
index dcca4bb..1138754 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d<rgba8uint, read>, coords: vec2<u32>) -> vec4<u32>
@@ -42,8 +45,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd6442();
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.dxc.hlsl
index 4e50df5..56bb793 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fd6442() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd6442()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.fxc.hlsl
index 4e50df5..56bb793 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fd6442() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd6442()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl
index f6ecece..baa29c2 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_fd6442() {
   uvec2 arg_1 = uvec2(1u);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2D arg_0;
 uvec4 textureLoad_fd6442() {
   uvec2 arg_1 = uvec2(1u);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.spvasm
index 7fa3937..c7da85b 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fd6442 "textureLoad_fd6442"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -82,7 +82,7 @@
       %arg_1 = OpVariable %_ptr_Function_v2uint Function %28
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
-         %30 = OpLoad %16 %arg_0
+         %30 = OpLoad %19 %arg_0
          %31 = OpLoad %v2uint %arg_1
          %29 = OpImageRead %v4uint %30 %31
                OpStore %res %29
diff --git a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.wgsl
index 0f94b15..6896eb9 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd6442.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d<rgba8uint, read>;
 
 fn textureLoad_fd6442() -> vec4<u32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd6442();
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl
index d955e62..ce362a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8snorm, read_write>, coords: vec2<u32>, array_index: i32) -> vec4<f32>
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd9606();
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.dxc.hlsl
index 8b60105..5744261 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_fd9606() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd9606()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.fxc.hlsl
index 8b60105..5744261 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 float4 textureLoad_fd9606() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fd9606()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.spvasm
index 2dc304e..2ffed8f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fd9606 "textureLoad_fd9606"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
@@ -85,7 +85,7 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
-         %32 = OpLoad %12 %arg_0
+         %32 = OpLoad %15 %arg_0
          %34 = OpLoad %v2uint %arg_1
          %35 = OpCompositeExtract %uint %34 0
          %36 = OpCompositeExtract %uint %34 1
diff --git a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.wgsl
index d3362be..3cbd51b 100644
--- a/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fd9606.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureLoad_fd9606() -> vec4<f32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fd9606();
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl
index 5e8dddc..78ca15a 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba8uint, read>, coords: vec2<i32>, array_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fdebd0();
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.dxc.hlsl
index fe60299..5e949ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fdebd0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fdebd0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.fxc.hlsl
index fe60299..5e949ca 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fdebd0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fdebd0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl
index 7234b2c..1444d33 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_fdebd0() {
   ivec2 arg_1 = ivec2(1);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uvec4 textureLoad_fdebd0() {
   ivec2 arg_1 = ivec2(1);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.spvasm
index 6c90854..bab7d5a 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fdebd0 "textureLoad_fdebd0"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,12 +55,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -90,7 +90,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %int_1
-         %34 = OpLoad %16 %arg_0
+         %34 = OpLoad %19 %arg_0
          %36 = OpLoad %v2int %arg_1
          %37 = OpCompositeExtract %int %36 0
          %38 = OpCompositeExtract %int %36 1
diff --git a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.wgsl
index 5132b4f..631e42d 100644
--- a/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fdebd0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureLoad_fdebd0() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fdebd0();
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl
index d2bce6c..d88a988 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureLoad(texture: texture_multisampled_2d<u32>, coords: vec2<u32>, sample_index: i32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe0565();
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl
index bc3d86b..f6ba98b 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fe0565() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe0565()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl
index bc3d86b..f6ba98b 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint4 textureLoad_fe0565() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe0565()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl
index ace0a09..4f878c0 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_fe0565() {
   uvec2 arg_1 = uvec2(1u);
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -29,6 +29,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uniform highp usampler2DMS arg_0_1;
 uvec4 textureLoad_fe0565() {
   uvec2 arg_1 = uvec2(1u);
@@ -37,10 +41,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm
index d4c5cbc..24fbb22 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fe0565 "textureLoad_fe0565"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
      %v2uint = OpTypeVector %uint 2
      %uint_1 = OpConstant %uint 1
@@ -88,7 +88,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %25
                OpStore %arg_2 %int_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %36 = OpLoad %v2uint %arg_1
          %37 = OpLoad %int %arg_2
          %34 = OpImageFetch %v4uint %35 %36 Sample %37
diff --git a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl
index ed9bf15..0c885a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe0565.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureLoad_fe0565() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe0565();
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl
index a9a36a9..25e1698 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_1d<rgba8snorm, read>;
 
 // fn textureLoad(texture: texture_storage_1d<rgba8snorm, read>, coords: i32) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe222a();
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.dxc.hlsl
index 0c34fe7..491390a 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_fe222a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe222a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.fxc.hlsl
index 0c34fe7..491390a 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_fe222a() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe222a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl
index bfe893b..3d96747 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_fe222a() {
   int arg_1 = 1;
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2D arg_0;
 vec4 textureLoad_fe222a() {
   int arg_1 = 1;
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.spvasm
index 6c43893..7eb32a4 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fe222a "textureLoad_fe222a"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 1D 0 0 0 2 Rgba8Snorm
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %int_1 = OpConstant %int 1
@@ -79,7 +79,7 @@
       %arg_1 = OpVariable %_ptr_Function_int Function %23
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %int_1
-         %25 = OpLoad %12 %arg_0
+         %25 = OpLoad %15 %arg_0
          %26 = OpLoad %int %arg_1
          %24 = OpImageRead %v4float %25 %26
                OpStore %res %24
diff --git a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.wgsl
index 72ea5ab..b25fa34 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe222a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_1d<rgba8snorm, read>;
 
 fn textureLoad_fe222a() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe222a();
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl
index 98c0e18..5bd5ac7 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureLoad(texture: texture_storage_2d_array<rgba32uint, read_write>, coords: vec2<i32>, array_index: u32) -> vec4<u32>
@@ -43,8 +46,6 @@
   var res: vec4<u32> = textureLoad(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe2c1b();
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl
index 2972639..eb123a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_fe2c1b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe2c1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl
index 2972639..eb123a5 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint4 textureLoad_fe2c1b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_fe2c1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.spvasm
index 40e5caf..a818447 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_fe2c1b "textureLoad_fe2c1b"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %13 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %13
-         %16 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_16 = OpTypePointer UniformConstant %16
-      %arg_0 = OpVariable %_ptr_UniformConstant_16 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %19 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
+      %arg_0 = OpVariable %_ptr_UniformConstant_19 UniformConstant
          %20 = OpTypeFunction %v4uint
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -89,7 +89,7 @@
         %res = OpVariable %_ptr_Function_v4uint Function %10
                OpStore %arg_1 %26
                OpStore %arg_2 %uint_1
-         %35 = OpLoad %16 %arg_0
+         %35 = OpLoad %19 %arg_0
          %37 = OpLoad %v2int %arg_1
          %38 = OpCompositeExtract %int %37 0
          %39 = OpCompositeExtract %int %37 1
diff --git a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.wgsl
index f61c9b6..5f0ed9f 100644
--- a/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/fe2c1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureLoad_fe2c1b() -> vec4<u32> {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_fe2c1b();
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl
index 239ab2f..13eb3cf 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_storage_3d<rgba16float, read>;
 
 // fn textureLoad(texture: texture_storage_3d<rgba16float, read>, coords: vec3<i32>) -> vec4<f32>
@@ -42,8 +45,6 @@
   var res: vec4<f32> = textureLoad(arg_0, arg_1);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_feab99();
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.dxc.hlsl
index 78c6ae2..5acdc64 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_feab99() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_feab99()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.fxc.hlsl
index 78c6ae2..5acdc64 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 float4 textureLoad_feab99() {
@@ -6,8 +7,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureLoad_feab99()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl
index d341287..4491336 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_feab99() {
   ivec3 arg_1 = ivec3(1);
@@ -9,10 +13,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -28,6 +28,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image3D arg_0;
 vec4 textureLoad_feab99() {
   ivec3 arg_1 = ivec3(1);
@@ -35,10 +39,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.spvasm
index 3b5d3b2..50578d7 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_feab99 "textureLoad_feab99"
                OpName %arg_1 "arg_1"
                OpName %res "res"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -50,12 +50,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 2 Rgba16f
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %v4float
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
@@ -80,7 +80,7 @@
       %arg_1 = OpVariable %_ptr_Function_v3int Function %25
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_1 %22
-         %27 = OpLoad %12 %arg_0
+         %27 = OpLoad %15 %arg_0
          %28 = OpLoad %v3int %arg_1
          %26 = OpImageRead %v4float %27 %28
                OpStore %res %26
diff --git a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.wgsl
index 6ce9a6a..49df10c 100644
--- a/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/feab99.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_storage_3d<rgba16float, read>;
 
 fn textureLoad_feab99() -> vec4<f32> {
@@ -6,8 +8,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_feab99();
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl
index ad7bba4..5f260f4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: u32) -> f32
@@ -44,8 +47,6 @@
   var res: f32 = textureLoad(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ff1119();
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl
index 1965714..fdb5a26 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_ff1119() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl
index 1965714..fdb5a26 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 float textureLoad_ff1119() {
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureLoad_ff1119()));
   return;
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl
index 9db3244..a8e5837 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_ff1119() {
   ivec2 arg_1 = ivec2(1);
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 float textureLoad_ff1119() {
   ivec2 arg_1 = ivec2(1);
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm
index 8cd3eca..85e4db3 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.spvasm
@@ -13,10 +13,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureLoad_ff1119 "textureLoad_ff1119"
                OpName %arg_1 "arg_1"
                OpName %arg_2 "arg_2"
@@ -34,12 +34,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -51,12 +51,12 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
          %16 = OpTypeFunction %float
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -91,7 +91,7 @@
                OpStore %arg_1 %22
                OpStore %arg_2 %int_1
                OpStore %arg_3 %uint_1
-         %36 = OpLoad %12 %arg_0
+         %36 = OpLoad %15 %arg_0
          %38 = OpLoad %v2int %arg_1
          %39 = OpCompositeExtract %int %38 0
          %40 = OpCompositeExtract %int %38 1
diff --git a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl
index 8de1279..75102d4 100644
--- a/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureLoad/ff1119.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureLoad_ff1119() -> f32 {
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureLoad_ff1119();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl
index 7fba6d3..f8d3f30 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_014a3b();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
index 730fdd4..5a3db4e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_014a3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_014a3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
index 730fdd4..5a3db4e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_014a3b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_014a3b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl
index e39c49d..8929873 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_014a3b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.spvasm
index e0dae77..710f24c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_014a3b "textureNumLayers_014a3b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_014a3b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.wgsl
index c477905..45a80ce 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/014a3b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, write>;
 
 fn textureNumLayers_014a3b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_014a3b();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl
index 31c2d1c..1279b13 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_071ebc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
index 464ba1b..c2d3b4a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_071ebc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_071ebc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
index 464ba1b..c2d3b4a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_071ebc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_071ebc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.spvasm
index 7184d21..fcc48f1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_071ebc "textureNumLayers_071ebc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_071ebc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.wgsl
index 7c0eb15..0c57f8a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/071ebc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, write>;
 
 fn textureNumLayers_071ebc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_071ebc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl
index 668f029..73c8e51 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0856ae();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl
index e1f3570..5935d35 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_0856ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0856ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl
index e1f3570..5935d35 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_0856ae() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0856ae()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.glsl
index be7cd3c..a371209 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_0856ae() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_0856ae() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.spvasm
index 3c4d8fc..68d46d5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_0856ae "textureNumLayers_0856ae"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_0856ae = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.wgsl
index 2320f1b..d8c0947 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0856ae.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read_write>;
 
 fn textureNumLayers_0856ae() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0856ae();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl
index e7e9ff9..fb03398 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureNumLayers(texture: texture_2d_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0ec222();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
index 6abb9ca..4d74aa5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0ec222() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0ec222()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
index 6abb9ca..4d74aa5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0ec222() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0ec222()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.glsl
index 4f5d4da..fdf25e6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_0ec222() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_0ec222() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.spvasm
index 080c812..1c921a7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_0ec222 "textureNumLayers_0ec222"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureNumLayers_0ec222 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.wgsl
index 4f521ee..8d9c4e9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0ec222.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureNumLayers_0ec222() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0ec222();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl
index 8e382a1..d1833ea 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0fe8dc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl
index 18d7c20..9ad89ff 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0fe8dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0fe8dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl
index 18d7c20..9ad89ff 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_0fe8dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_0fe8dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl
index 094d0f3..7261677 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_0fe8dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.spvasm
index 4661978..e137e17 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_0fe8dc "textureNumLayers_0fe8dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_0fe8dc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.wgsl
index 1caba37..e00f0ca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/0fe8dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read>;
 
 fn textureNumLayers_0fe8dc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_0fe8dc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl
index e3db055..897582e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_17ccad();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl
index 49083b3..c961a11 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_17ccad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_17ccad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl
index 49083b3..c961a11 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_17ccad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_17ccad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.spvasm
index 1faea24..2c51a44 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_17ccad "textureNumLayers_17ccad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_17ccad = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.wgsl
index 1d71995..0cb0b82 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/17ccad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read_write>;
 
 fn textureNumLayers_17ccad() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_17ccad();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl
index e92ebb4..6d92153 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<bgra8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_1f858a();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
index 5478c82..952ea3b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_1f858a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_1f858a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
index 5478c82..952ea3b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_1f858a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_1f858a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl
index 0bdd5c9..43c1b28 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_1f858a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.spvasm
index e99ae2a..51ea35c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_1f858a "textureNumLayers_1f858a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_1f858a = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.wgsl
index 11804a5..234e94c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/1f858a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, write>;
 
 fn textureNumLayers_1f858a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_1f858a();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl
index 3421028..4c5df4a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_24d572();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.dxc.hlsl
index 4944100..86b2307 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_24d572() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_24d572()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.fxc.hlsl
index 4944100..86b2307 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_24d572() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_24d572()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.spvasm
index 8918e82..2203bfb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_24d572 "textureNumLayers_24d572"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_24d572 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.wgsl
index c7dccb0..a67a2c5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/24d572.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read_write>;
 
 fn textureNumLayers_24d572() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_24d572();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl
index 64e5f4e..39beb00 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_26c9f9();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl
index a9750c3..f5adb9a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_26c9f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_26c9f9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl
index a9750c3..f5adb9a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_26c9f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_26c9f9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl
index b9034c3..9888b69 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_26c9f9() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.spvasm
index d9aee3f..f63f78b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_26c9f9 "textureNumLayers_26c9f9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_26c9f9 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.wgsl
index 122eb19..1605fa9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/26c9f9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read>;
 
 fn textureNumLayers_26c9f9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_26c9f9();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl
index 8b5c018..03d4b8a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2a48dc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl
index a213e43..8be98ca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_2a48dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2a48dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl
index a213e43..8be98ca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_2a48dc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2a48dc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.glsl
index 8d2d329..4e74cd9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_2a48dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_2a48dc() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.spvasm
index 648c31e..59aef02 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_2a48dc "textureNumLayers_2a48dc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_2a48dc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.wgsl
index 39ad715..455472a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2a48dc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read_write>;
 
 fn textureNumLayers_2a48dc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2a48dc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl
index 5d65a5b..191e63c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2d95ea();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl
index 334e6e83..00af039 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_2d95ea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2d95ea()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl
index 334e6e83..00af039 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_2d95ea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_2d95ea()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.spvasm
index 99272fd..fa5ccf3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_2d95ea "textureNumLayers_2d95ea"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rg32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_2d95ea = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.wgsl
index 4c9cc1b..2c6ff80 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/2d95ea.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32uint, read>;
 
 fn textureNumLayers_2d95ea() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_2d95ea();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl
index 5bd5d0c..2dc7a3b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_327d70();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.dxc.hlsl
index 27d62dc..740659e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_327d70() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_327d70()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.fxc.hlsl
index 27d62dc..740659e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_327d70() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_327d70()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.glsl
index 4d0f009..e3229e2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_327d70() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_327d70() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.spvasm
index 1cde908..14e7f0d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_327d70 "textureNumLayers_327d70"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_327d70 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.wgsl
index d44c1bf..dfa4e13 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/327d70.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read_write>;
 
 fn textureNumLayers_327d70() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_327d70();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl
index 2f9cc90..ce4c18e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_32ca10();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl
index a927850..fc872b3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_32ca10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_32ca10()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl
index a927850..fc872b3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_32ca10() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_32ca10()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.glsl
index f58efda..8c21e1c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_32ca10() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_32ca10() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.spvasm
index fbc9187..766a028 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_32ca10 "textureNumLayers_32ca10"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_32ca10 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.wgsl
index b1db416..456cdbc 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/32ca10.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read_write>;
 
 fn textureNumLayers_32ca10() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_32ca10();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl
index a089a86..c61c85d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3465ec();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
index 17435f6..a3a4ec5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3465ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3465ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
index 17435f6..a3a4ec5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3465ec() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3465ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl
index 3594d80..259dd66 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_3465ec() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.spvasm
index 77a00ee..43219ed 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3465ec "textureNumLayers_3465ec"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_3465ec = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.wgsl
index 35938c0..f1f3eb1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3465ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, write>;
 
 fn textureNumLayers_3465ec() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3465ec();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
index b341efe..d6334d8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureNumLayers(texture: texture_cube_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_34cefa();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
index 9339bc1..12bddc3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_34cefa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_34cefa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
index 9339bc1..12bddc3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_34cefa() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_34cefa()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm
index ad3b7f0..25ba0e4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_34cefa "textureNumLayers_34cefa"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureNumLayers_34cefa = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl
index 1134a95..f69a237 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/34cefa.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureNumLayers_34cefa() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_34cefa();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl
index bbadf85..13b6517 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3580ab();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
index 4f77d74..d5f2c40 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3580ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3580ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
index 4f77d74..d5f2c40 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_3580ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3580ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.spvasm
index 8d41ae5..284b6e5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3580ab "textureNumLayers_3580ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -78,7 +78,7 @@
 %textureNumLayers_3580ab = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.wgsl
index b339c6e1..4c1f2c7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3580ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, write>;
 
 fn textureNumLayers_3580ab() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3580ab();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl
index 4e07a14..4c69dd1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_379cc5();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl
index 7472c26..e763f5c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_379cc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_379cc5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl
index 7472c26..e763f5c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_379cc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_379cc5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl
index 0c4003f..428739b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_379cc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.spvasm
index f0739d1..4e7607a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_379cc5 "textureNumLayers_379cc5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_379cc5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.wgsl
index 85f5ac4..b5318dd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/379cc5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read>;
 
 fn textureNumLayers_379cc5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_379cc5();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl
index dcf9509..14a1de5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_37bc8a();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl
index 80f1dbf..c38c0b1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_37bc8a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_37bc8a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl
index 80f1dbf..c38c0b1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_37bc8a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_37bc8a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl
index 2042788..4e52d06 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32f) uniform highp image2DArray arg_0;
 uint textureNumLayers_37bc8a() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.spvasm
index 5c98ac1..c95e619 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_37bc8a "textureNumLayers_37bc8a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_37bc8a = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.wgsl
index fb4564b..315be45 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/37bc8a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32float, read_write>;
 
 fn textureNumLayers_37bc8a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_37bc8a();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl
index c366fd9..38d342b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_380a60();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.dxc.hlsl
index d026298..e62e95f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_380a60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_380a60()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.fxc.hlsl
index d026298..e62e95f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_380a60() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_380a60()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.glsl
index 4761efc..7457755 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_380a60() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_380a60() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.spvasm
index ef0f22c..0a97473 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_380a60 "textureNumLayers_380a60"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_380a60 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.wgsl
index b5fd719..14d39e5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/380a60.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read_write>;
 
 fn textureNumLayers_380a60() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_380a60();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl
index 91dd409..f7125dc 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3ad143();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl
index 338ce7c..dd27028 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3ad143() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3ad143()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl
index 338ce7c..dd27028 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3ad143() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3ad143()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl
index f3cb564..38eacba 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_3ad143() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.spvasm
index d2f7022..18ddc8d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3ad143 "textureNumLayers_3ad143"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_3ad143 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.wgsl
index 102fd4e..3856f83 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3ad143.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, read>;
 
 fn textureNumLayers_3ad143() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3ad143();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl
index 13bb05f..c722445 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3eff89();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl
index 08044ea..9304231 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3eff89() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3eff89()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl
index 08044ea..9304231 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_3eff89() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_3eff89()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl
index ffd9625..e31146d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_3eff89() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.spvasm
index 006fb7e..d1a63b0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_3eff89 "textureNumLayers_3eff89"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_3eff89 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.wgsl
index b5d30c2..91c3d68 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/3eff89.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read>;
 
 fn textureNumLayers_3eff89() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_3eff89();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl
index 74c379c..a38fcfa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<bgra8unorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_485774();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.dxc.hlsl
index 8154272..f88b5d2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_485774() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_485774()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.fxc.hlsl
index 8154272..f88b5d2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_485774() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_485774()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl
index a69e478..0d85cfd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_485774() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.spvasm
index f43cdb9..0cc084e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_485774 "textureNumLayers_485774"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_485774 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.wgsl
index e575a14..693be19 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/485774.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read>;
 
 fn textureNumLayers_485774() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_485774();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
index 99a67f8..b575761 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureNumLayers(texture: texture_depth_cube_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_48ef47();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
index a56b2f0..202b00c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_48ef47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_48ef47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
index a56b2f0..202b00c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_48ef47() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_48ef47()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm
index ca80f4b..0488cd2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_48ef47 "textureNumLayers_48ef47"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureNumLayers_48ef47 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl
index bbbf7c5..bc4a10c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/48ef47.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureNumLayers_48ef47() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_48ef47();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl
index ed97e7b..35f429d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4adaad();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl
index 245b9ba..6ebf43c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_4adaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4adaad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl
index 245b9ba..6ebf43c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_4adaad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4adaad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl
index bed382c..26eb05e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_4adaad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.spvasm
index f7ca01e..1aef1cb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_4adaad "textureNumLayers_4adaad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_4adaad = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.wgsl
index cf051c2..b153e1e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4adaad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read>;
 
 fn textureNumLayers_4adaad() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4adaad();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl
index fc8f0dc..6d1ad87 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4c4333();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
index e7fe8df..73df4c2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_4c4333() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4c4333()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
index e7fe8df..73df4c2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_4c4333() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_4c4333()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl
index 9241a50..6fdab34 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_4c4333() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.spvasm
index 2a38201..66d24b3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_4c4333 "textureNumLayers_4c4333"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_4c4333 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.wgsl
index 5cd86fd..620baa4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/4c4333.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, write>;
 
 fn textureNumLayers_4c4333() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_4c4333();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl
index 0ae139e..be24eb5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32uint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_520086();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.dxc.hlsl
index 8750d93..6aab36a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_520086() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_520086()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.fxc.hlsl
index 8750d93..6aab36a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_520086() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_520086()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl
index c8a0a62..5bc3549 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp uimage2DArray arg_0;
 uint textureNumLayers_520086() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.spvasm
index db5221e..4b79f94 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_520086 "textureNumLayers_520086"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_520086 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.wgsl
index b5fb314..2778ab0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/520086.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read_write>;
 
 fn textureNumLayers_520086() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_520086();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl
index 0e4cdae..e1e9e92 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_52dfc5();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl
index 9b5e67d..2a76482 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_52dfc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_52dfc5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl
index 9b5e67d..2a76482 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_52dfc5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_52dfc5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl
index fd58ae8..d0ba344 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp readonly iimage2DArray arg_0;
 uint textureNumLayers_52dfc5() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.spvasm
index a979bc2..2edae7c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_52dfc5 "textureNumLayers_52dfc5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_52dfc5 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.wgsl
index f4b6e11..b7ba398 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/52dfc5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read>;
 
 fn textureNumLayers_52dfc5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_52dfc5();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl
index d3ad10d..6358d23 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_54a654();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.dxc.hlsl
index a020cd6..732a5b6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_54a654() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_54a654()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.fxc.hlsl
index a020cd6..732a5b6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_54a654() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_54a654()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.glsl
index 34d05c4..2e7ee93 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_54a654() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_54a654() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.spvasm
index 8293f5c..0ddac80 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_54a654 "textureNumLayers_54a654"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_54a654 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.wgsl
index f8759ea..5710228 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/54a654.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, read_write>;
 
 fn textureNumLayers_54a654() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_54a654();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl
index 0d29096..499a91c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_555f67();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.dxc.hlsl
index 0560d50..dc1f2a0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_555f67() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_555f67()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.fxc.hlsl
index 0560d50..dc1f2a0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_555f67() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_555f67()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl
index a95edcb..e2f1b6e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_555f67() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.spvasm
index f417c87..ae11cde 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_555f67 "textureNumLayers_555f67"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba16ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_555f67 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.wgsl
index f3903fc..f32ce4f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/555f67.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16uint, read>;
 
 fn textureNumLayers_555f67() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_555f67();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl
index 8f070cb..6a651ce 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r8unorm, read>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59cc27();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl
index eeeea33..dd02577 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_59cc27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59cc27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl
index eeeea33..dd02577 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_59cc27() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59cc27()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.spvasm
index 692d1ae..52280a5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_59cc27 "textureNumLayers_59cc27"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_59cc27 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.wgsl
index fc588d7..7527e60 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59cc27.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read>;
 
 fn textureNumLayers_59cc27() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59cc27();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl
index 819a37f..a685f69 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59eb57();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
index 5a72acf..1148161 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_59eb57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59eb57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
index 5a72acf..1148161 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_59eb57() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_59eb57()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl
index 6f897ff..d4f3682 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_59eb57() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.spvasm
index b93e056..c37bef0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_59eb57 "textureNumLayers_59eb57"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_59eb57 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.wgsl
index 4099328..2792c5f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/59eb57.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, write>;
 
 fn textureNumLayers_59eb57() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_59eb57();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl
index d326231..8024317 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5ee8f2();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl
index 817b632..c8d4901 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_5ee8f2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5ee8f2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl
index 817b632..c8d4901 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_5ee8f2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5ee8f2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.glsl
index 93a8ee7..e3ab78c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_5ee8f2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_5ee8f2() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.spvasm
index 24c73af..09e6574 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_5ee8f2 "textureNumLayers_5ee8f2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_5ee8f2 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.wgsl
index cdd3370..b43d350 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5ee8f2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, read_write>;
 
 fn textureNumLayers_5ee8f2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5ee8f2();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl
index 2c69e00..d053a57 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5f20d1();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl
index 84b141e..0256d7f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_5f20d1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5f20d1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl
index 84b141e..0256d7f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_5f20d1() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_5f20d1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl
index e7571e5..a88f95c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_5f20d1() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.spvasm
index e8d9705..5bc8216 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_5f20d1 "textureNumLayers_5f20d1"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_5f20d1 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.wgsl
index 94a4b71..141a271 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/5f20d1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, read>;
 
 fn textureNumLayers_5f20d1() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_5f20d1();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl
index aa3130e..b1c74ab 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_61bd23();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
index 0bbe67b..2f2c483 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_61bd23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_61bd23()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
index 0bbe67b..2f2c483 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_61bd23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_61bd23()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl
index 0247ac3..3d2c75d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_61bd23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.spvasm
index b789129..e4acbf0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_61bd23 "textureNumLayers_61bd23"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_61bd23 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.wgsl
index 35fa0d6..8fc3a03 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/61bd23.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, write>;
 
 fn textureNumLayers_61bd23() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_61bd23();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl
index 151823c..2907965 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_622aa2();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl
index 61ba36f..9fe3827 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_622aa2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_622aa2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl
index 61ba36f..9fe3827 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_622aa2() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_622aa2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.spvasm
index 623de33..0766b19 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_622aa2 "textureNumLayers_622aa2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_622aa2 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.wgsl
index d5ad8e6..3b29b97 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/622aa2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read_write>;
 
 fn textureNumLayers_622aa2() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_622aa2();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
index 36d4bd9..5786afa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureNumLayers(texture: texture_cube_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6b4321();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
index c0bc1fe..fc83d3c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_6b4321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6b4321()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
index c0bc1fe..fc83d3c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_6b4321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6b4321()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm
index eac0a0b..d6a81e5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_6b4321 "textureNumLayers_6b4321"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -78,7 +78,7 @@
 %textureNumLayers_6b4321 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl
index 0e4560e..cf4df69 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6b4321.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureNumLayers_6b4321() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6b4321();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl
index 1b1d919..6d03a0f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6da0eb();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl
index a9df18c..0b38b3a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_6da0eb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6da0eb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl
index a9df18c..0b38b3a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_6da0eb() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_6da0eb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.glsl
index 5817dc0..80d67e1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_6da0eb() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_6da0eb() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.spvasm
index 24fd607..51b3023 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_6da0eb "textureNumLayers_6da0eb"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_6da0eb = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.wgsl
index 003de40..1d2ee12 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/6da0eb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, read_write>;
 
 fn textureNumLayers_6da0eb() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_6da0eb();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl
index f57828f..e09cefa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureNumLayers(texture: texture_2d_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_77be7b();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
index 73c0769..95f5a83 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_77be7b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_77be7b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
index 73c0769..95f5a83 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_77be7b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_77be7b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.glsl
index ddffc44..f522ea6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uint textureNumLayers_77be7b() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp isampler2DArray arg_0_1;
 uint textureNumLayers_77be7b() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.spvasm
index 8e0cdb2..5de3196 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_77be7b "textureNumLayers_77be7b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
       %int_0 = OpConstant %int 0
@@ -77,7 +77,7 @@
 %textureNumLayers_77be7b = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySizeLod %v3uint %26 %int_0
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.wgsl
index 5bcffcd..fa6efca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/77be7b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureNumLayers_77be7b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_77be7b();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl
index a6bbe3f..49e24a5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7895f4();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl
index 72ed72e..867a36f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_7895f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7895f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl
index 72ed72e..867a36f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_7895f4() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7895f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl
index 4a13a60..779febc 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_7895f4() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.spvasm
index 8d1d706..249fcae 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_7895f4 "textureNumLayers_7895f4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_7895f4 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.wgsl
index a9afb4b..35daf5c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7895f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read>;
 
 fn textureNumLayers_7895f4() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7895f4();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl
index 7567648..2a0c59a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7f28cf();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
index 0adf1e3..9eb34fb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_7f28cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7f28cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
index 0adf1e3..9eb34fb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_7f28cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_7f28cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.spvasm
index 76bb90a..4ffc0f4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_7f28cf "textureNumLayers_7f28cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_7f28cf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.wgsl
index b75e23f..f9de0d5 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/7f28cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, write>;
 
 fn textureNumLayers_7f28cf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_7f28cf();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl
index 03c02cc..71f6f74 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r8unorm, write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8356f7();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl
index 9fbb117..0e5c6a4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8356f7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8356f7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl
index 9fbb117..0e5c6a4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8356f7() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8356f7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.spvasm
index 3013641..2e4a001 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8356f7 "textureNumLayers_8356f7"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_8356f7 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.wgsl
index 494fd43..6709ac0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8356f7.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, write>;
 
 fn textureNumLayers_8356f7() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8356f7();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl
index 509eaa4..8c56c61 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_878dea();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
index bfe017b..b153ad2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_878dea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_878dea()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
index bfe017b..b153ad2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_878dea() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_878dea()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl
index d404ac3..85468cd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_878dea() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.spvasm
index 97e2147..8cb01e4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_878dea "textureNumLayers_878dea"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba8i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_878dea = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.wgsl
index 203656a..229f3fa 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/878dea.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8sint, write>;
 
 fn textureNumLayers_878dea() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_878dea();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl
index 00ad10e..60c8631 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_87faad();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
index f86cf53..19e90e2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_87faad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_87faad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
index f86cf53..19e90e2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_87faad() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_87faad()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl
index 8c07946..801ec18 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_87faad() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.spvasm
index dab25e3..a8a9bad 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_87faad "textureNumLayers_87faad"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 R32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 R32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_87faad = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.wgsl
index f53f110..33ac6af 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/87faad.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32uint, write>;
 
 fn textureNumLayers_87faad() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_87faad();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl
index 76cebdc..a4750bb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureNumLayers(texture: texture_2d_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8ac32a();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
index 2fdda86..95d8e38 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_8ac32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8ac32a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
index 2fdda86..95d8e38 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_8ac32a() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8ac32a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.glsl
index 5dc07b7..91acce8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uint textureNumLayers_8ac32a() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp usampler2DArray arg_0_1;
 uint textureNumLayers_8ac32a() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.spvasm
index 4a8d637..bac4031 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8ac32a "textureNumLayers_8ac32a"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureNumLayers_8ac32a = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.wgsl
index 95272b4..6ebbbb6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8ac32a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureNumLayers_8ac32a() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8ac32a();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl
index 7bcc7f2..122bca0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8bd987();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
index 0cc0fa9..91c9d59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8bd987() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8bd987()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
index 0cc0fa9..91c9d59 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8bd987() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8bd987()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl
index b714c5a..416376a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_8bd987() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.spvasm
index dee20e3..bbc8c90 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8bd987 "textureNumLayers_8bd987"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_8bd987 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.wgsl
index 0fda35d..737787c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8bd987.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, write>;
 
 fn textureNumLayers_8bd987() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8bd987();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl
index 6e877a6..a82bcad 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8unorm, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8unorm, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8dbf23();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
index d325e01..7b957a1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8dbf23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8dbf23()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
index d325e01..7b957a1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8dbf23() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8dbf23()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl
index 43d543e..8f43d97 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_8dbf23() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.spvasm
index 6b9082c..4425af0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8dbf23 "textureNumLayers_8dbf23"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_8dbf23 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.wgsl
index 2e4623e..1302392 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8dbf23.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8unorm, write>;
 
 fn textureNumLayers_8dbf23() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8dbf23();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl
index 99cef53..4b781a96 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r32sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8e1bd0();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl
index 82bbd33..7e78bdb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8e1bd0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8e1bd0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl
index 82bbd33..7e78bdb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_8e1bd0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_8e1bd0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl
index 5d1cf15..0bb0cca 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(r32i) uniform highp iimage2DArray arg_0;
 uint textureNumLayers_8e1bd0() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.spvasm
index 1b6d5e2..c553813 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_8e1bd0 "textureNumLayers_8e1bd0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 R32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 R32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_8e1bd0 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.wgsl
index c916ebe..0a82ebd 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/8e1bd0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r32sint, read_write>;
 
 fn textureNumLayers_8e1bd0() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_8e1bd0();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl
index c0ad829..adcb962 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_90b8cc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl
index 8fde595..327f8eb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_90b8cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_90b8cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl
index 8fde595..327f8eb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_90b8cc() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_90b8cc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.spvasm
index 3963b7f..7c9f90a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_90b8cc "textureNumLayers_90b8cc"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,12 +54,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rg32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rg32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_90b8cc = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.wgsl
index 3ee9cf2..8d7522c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/90b8cc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32float, read>;
 
 fn textureNumLayers_90b8cc() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_90b8cc();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl
index 0e39da5..3da37d2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9695c6();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
index 75fc105..879a1b9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_9695c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9695c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
index 75fc105..879a1b9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<uint4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_9695c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9695c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl
index fa77999..4f34cb9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp writeonly uimage2DArray arg_0;
 uint textureNumLayers_9695c6() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.spvasm
index c797165..1ec8e1f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_9695c6 "textureNumLayers_9695c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_9695c6 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.wgsl
index 50dc038..f8a421a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9695c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, write>;
 
 fn textureNumLayers_9695c6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9695c6();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl
index 87b2b8f..7a38ac9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_98a9cf();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
index 2abf340..7eb3c67 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_98a9cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_98a9cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
index 2abf340..7eb3c67 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_98a9cf() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_98a9cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl
index fec27d6..1e27aa7 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_98a9cf() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.spvasm
index 47a2552..c032c73 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_98a9cf "textureNumLayers_98a9cf"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_98a9cf = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.wgsl
index 5c0b35d..da16b2b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/98a9cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, write>;
 
 fn textureNumLayers_98a9cf() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_98a9cf();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl
index 3394443..1e3e08b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9c60e3();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl
index 46d5582..400111d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_9c60e3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9c60e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl
index 46d5582..400111d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_9c60e3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_9c60e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl
index efea934..4b81f3a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_9c60e3() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.spvasm
index 6f181cb..5a6fdbb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_9c60e3 "textureNumLayers_9c60e3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba32ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_9c60e3 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.wgsl
index 6e7dfb0..f9ed5c9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/9c60e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32uint, read>;
 
 fn textureNumLayers_9c60e3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_9c60e3();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl
index 7b8f91a..b5bfd33 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<bgra8unorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<bgra8unorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a54655();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.dxc.hlsl
index 53ccb63..6f6bd6a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_a54655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a54655()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.fxc.hlsl
index 53ccb63..6f6bd6a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_a54655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a54655()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.glsl
index ff44163..5d0ee4f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_a54655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_a54655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.spvasm
index 80cbc43..82c3390 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_a54655 "textureNumLayers_a54655"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_a54655 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.wgsl
index b0ea678..ed0e8bf 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a54655.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<bgra8unorm, read_write>;
 
 fn textureNumLayers_a54655() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a54655();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl
index 21e38af..f400fbb 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureNumLayers(texture: texture_depth_2d_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a9d3f5();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
index d0a8673..e94a5be 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_a9d3f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a9d3f5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
index d0a8673..e94a5be 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLayers_a9d3f5() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_a9d3f5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.glsl
index fb69131..1bfda4e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_a9d3f5() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_1;
 uint textureNumLayers_a9d3f5() {
   uint res = uint(textureSize(arg_0_1, 0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.spvasm
index 7ef606e..d6afbd0 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_a9d3f5 "textureNumLayers_a9d3f5"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -77,7 +77,7 @@
 %textureNumLayers_a9d3f5 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.wgsl
index 655b89d..18de07a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/a9d3f5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureNumLayers_a9d3f5() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_a9d3f5();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl
index e8cda4a..f700e6f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl
@@ -36,6 +36,9 @@
 
 
 enable chromium_internal_graphite;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<r8unorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<r8unorm, read_write>) -> u32
@@ -43,8 +46,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_aac630();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.dxc.hlsl
index 5657383..665bc09 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_aac630() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_aac630()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.fxc.hlsl
index 5657383..665bc09 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_aac630() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_aac630()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.spvasm
index c46e289..1caf76e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_aac630 "textureNumLayers_aac630"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 R8
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 R8
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_aac630 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.wgsl
index fbfb38d..5aecc1f 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/aac630.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable chromium_internal_graphite;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<r8unorm, read_write>;
 
 fn textureNumLayers_aac630() -> u32 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_aac630();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl
index 01d887f..c6ba9a1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rg32sint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rg32sint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_bf2f76();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl
index dcb4d99..3a7436e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_bf2f76() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_bf2f76()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl
index dcb4d99..3a7436e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_bf2f76() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_bf2f76()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.spvasm
index 95f5431..bc30485 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_bf2f76 "textureNumLayers_bf2f76"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,13 +33,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,13 +54,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rg32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rg32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -78,7 +78,7 @@
 %textureNumLayers_bf2f76 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.wgsl
index 33eb69a..07d965b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/bf2f76.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rg32sint, read>;
 
 fn textureNumLayers_bf2f76() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_bf2f76();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
index 5932ec0..6579aa8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureNumLayers(texture: texture_cube_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_c1eca9();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
index 4d1be12..6dc8c3a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_c1eca9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_c1eca9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
index 4d1be12..6dc8c3a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_c1eca9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_c1eca9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm
index 22bb016..a7f3ed2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_c1eca9 "textureNumLayers_c1eca9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
 %textureNumLayers_c1eca9 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySizeLod %v3uint %25 %int_0
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl
index dabfbbf..e5193b4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/c1eca9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureNumLayers_c1eca9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_c1eca9();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl
index d75825a..3d4df1d 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8uint, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8uint, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3e21f();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl
index 8fc18b4..5df523a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_d3e21f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3e21f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl
index 8fc18b4..5df523a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_d3e21f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3e21f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl
index 28bc3ac..0dd91e3 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8ui) uniform highp readonly uimage2DArray arg_0;
 uint textureNumLayers_d3e21f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.spvasm
index 8ece63f..0302806 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_d3e21f "textureNumLayers_d3e21f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 2 Rgba8ui
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_d3e21f = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.wgsl
index d2f5b8c..01c111a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3e21f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8uint, read>;
 
 fn textureNumLayers_d3e21f() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3e21f();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl
index c3b5347..e7d01b8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32sint, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32sint, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3f655();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl
index fbad3b8..4fe7b29 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d3f655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3f655()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl
index fbad3b8..4fe7b29 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d3f655() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d3f655()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.glsl
index 9791bfa..5359a6c 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_d3f655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_d3f655() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.spvasm
index a38d6fa..41a4330 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_d3f655 "textureNumLayers_d3f655"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba32i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_d3f655 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.wgsl
index 4913cef..02f369e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d3f655.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32sint, read_write>;
 
 fn textureNumLayers_d3f655() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d3f655();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl
index 0f9ab90..d9412c1 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba32float, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba32float, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d75a0b();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
index 42bb727..4cbc0b8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d75a0b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d75a0b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
index 42bb727..4cbc0b8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_d75a0b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_d75a0b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl
index 5a7bbac..527dbee 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba32f) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_d75a0b() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.spvasm
index 596e31a..4f33ee9 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_d75a0b "textureNumLayers_d75a0b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba32f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_d75a0b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.wgsl
index fc173cd..0837cf2 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/d75a0b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba32float, write>;
 
 fn textureNumLayers_d75a0b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_d75a0b();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl
index 1f0c7fa..1abfc02 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16sint, write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16sint, write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_de8087();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
index e42eac7..47eaf82 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_de8087() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_de8087()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
index e42eac7..47eaf82 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<int4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_de8087() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_de8087()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl
index 636846a..576d62e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16i) uniform highp writeonly iimage2DArray arg_0;
 uint textureNumLayers_de8087() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.spvasm
index 8036844..805e29b 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_de8087 "textureNumLayers_de8087"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonReadable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonReadable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 2 Rgba16i
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -77,7 +77,7 @@
 %textureNumLayers_de8087 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %26 = OpLoad %15 %arg_0
+         %26 = OpLoad %18 %arg_0
          %24 = OpImageQuerySize %v3uint %26
          %23 = OpCompositeExtract %uint %24 2
                OpStore %res %23
diff --git a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.wgsl
index 68a8a2d..8c43594 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/de8087.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16sint, write>;
 
 fn textureNumLayers_de8087() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_de8087();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl
index e1cee8e..282a707 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba8snorm, read_write>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba8snorm, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_e47aac();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl
index 0d72355..400e614 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_e47aac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_e47aac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl
index 0d72355..400e614 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 RWTexture2DArray<float4> arg_0 : register(u0, space1);
 
 uint textureNumLayers_e47aac() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_e47aac()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.glsl
index 090ecf6..74581ba 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_e47aac() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba8_snorm) uniform highp writeonly image2DArray arg_0;
 uint textureNumLayers_e47aac() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.spvasm
index 34d7e4e..3595dc4 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_e47aac "textureNumLayers_e47aac"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba8Snorm
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -75,7 +75,7 @@
 %textureNumLayers_e47aac = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.wgsl
index 6390e6e..0e17359 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/e47aac.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba8snorm, read_write>;
 
 fn textureNumLayers_e47aac() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_e47aac();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl
index c1ee3ac..39fc4b8 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_storage_2d_array<rgba16float, read>;
 
 // fn textureNumLayers(texture: texture_storage_2d_array<rgba16float, read>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLayers(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_f1783f();
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl
index f3333f3..d7b5d6a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_f1783f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_f1783f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl
index f3333f3..d7b5d6a 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLayers_f1783f() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLayers_f1783f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl
index 7e04caf..b6efb5e 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 layout(rgba16f) uniform highp readonly image2DArray arg_0;
 uint textureNumLayers_f1783f() {
   uint res = uint(imageSize(arg_0).z);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.spvasm
index d37c162..d5f4859 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLayers_f1783f "textureNumLayers_f1783f"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,13 +32,13 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 NonWritable
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 NonWritable
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 2 Rgba16f
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
      %v3uint = OpTypeVector %uint 3
 %_ptr_Function_uint = OpTypePointer Function %uint
@@ -76,7 +76,7 @@
 %textureNumLayers_f1783f = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %25 = OpLoad %15 %arg_0
+         %25 = OpLoad %18 %arg_0
          %23 = OpImageQuerySize %v3uint %25
          %22 = OpCompositeExtract %uint %23 2
                OpStore %res %22
diff --git a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.wgsl
index 3270565..d8706d6 100644
--- a/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLayers/f1783f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_storage_2d_array<rgba16float, read>;
 
 fn textureNumLayers_f1783f() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLayers_f1783f();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl
index 1b8e816..d7cdd63 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<u32>;
 
 // fn textureNumLevels(texture: texture_2d_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_181090();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl
index 84c5848..46e12aa 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_181090() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_181090()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl
index 84c5848..46e12aa 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_181090() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_181090()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.glsl
index 51ff0a5..8f43eb8 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_181090() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_181090() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.spvasm
index 8b3e9ec..06cb75a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_181090 "textureNumLevels_181090"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_181090 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.wgsl
index 83923a9..dcbddc8 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/181090.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<u32>;
 
 fn textureNumLevels_181090() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_181090();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl
index d8e7661..a96f345 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d<i32>;
 
 // fn textureNumLevels(texture: texture_2d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a3fa9();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
index 55e45e6..dfdfccc 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a3fa9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a3fa9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
index 55e45e6..dfdfccc 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a3fa9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a3fa9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.glsl
index 1f7e6b6..a4457c9 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a3fa9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a3fa9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.spvasm
index 8150435..065764a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_1a3fa9 "textureNumLevels_1a3fa9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_1a3fa9 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.wgsl
index 7c0e012..16a6b4a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a3fa9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d<i32>;
 
 fn textureNumLevels_1a3fa9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a3fa9();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl
index f7b1779..5afd7f6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<u32>;
 
 // fn textureNumLevels(texture: texture_1d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a7fc3();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
index 1cd46ba..458f5f9 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a7fc3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a7fc3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
index 1cd46ba..458f5f9 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_1a7fc3() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_1a7fc3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl
index 47919e8..03939a1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a7fc3() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_1a7fc3() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.spvasm
index 0d43d2d..cfdcd2a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_1a7fc3 "textureNumLevels_1a7fc3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_1a7fc3 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.wgsl
index 4ed75a1..1858d53 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/1a7fc3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<u32>;
 
 fn textureNumLevels_1a7fc3() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_1a7fc3();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl
index 5dbb0db..1cbfebb 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube<i32>;
 
 // fn textureNumLevels(texture: texture_cube<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2267d8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
index f2b6dfe..bceb88e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2267d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2267d8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
index f2b6dfe..bceb88e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2267d8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2267d8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.glsl
index fd2ed97..127d3b8 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2267d8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2267d8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.spvasm
index a7be62b..ba4d966 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_2267d8 "textureNumLevels_2267d8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_2267d8 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.wgsl
index 44f7448..4ef62c2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2267d8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube<i32>;
 
 fn textureNumLevels_2267d8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2267d8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl
index ab5ffb0..6414f1d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 
 // fn textureNumLevels(texture: texture_2d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_24b2c6();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
index 52d25d5..4049849 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_24b2c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_24b2c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
index 52d25d5..4049849 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_24b2c6() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_24b2c6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.glsl
index 2784899..c477752 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_24b2c6() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_24b2c6() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.spvasm
index 5a0794f..61c56d2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_24b2c6 "textureNumLevels_24b2c6"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_24b2c6 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.wgsl
index bdf9ded..45b3714 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/24b2c6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 fn textureNumLevels_24b2c6() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_24b2c6();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl
index 29f4e5f..f4c8b6e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 
 // fn textureNumLevels(texture: texture_depth_cube_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2bea6c();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
index cfb7710..21e4b33 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_2bea6c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2bea6c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
index cfb7710..21e4b33 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_2bea6c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2bea6c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl
index baa3b79..e408dba 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2bea6c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2bea6c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.spvasm
index e5d7a26..e45b884 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_2bea6c "textureNumLevels_2bea6c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_2bea6c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.wgsl
index 8935c37..bcb1d67 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2bea6c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 fn textureNumLevels_2bea6c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2bea6c();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl
index 63c4c6f..007e23c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 
 // fn textureNumLevels(texture: texture_cube<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2df1ab();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
index f365adc..7d4f840 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2df1ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2df1ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
index f365adc..7d4f840 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_2df1ab() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_2df1ab()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.glsl
index 9a73e80..916eb9d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2df1ab() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_2df1ab() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.spvasm
index 55c65d4..b518206 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_2df1ab "textureNumLevels_2df1ab"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_2df1ab = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.wgsl
index e4b631d..d069c2c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/2df1ab.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 fn textureNumLevels_2df1ab() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_2df1ab();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl
index 205fc86..db3c07e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 
 // fn textureNumLevels(texture: texture_2d_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_46dbd8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
index 4c31b3d..ddf54d1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_46dbd8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_46dbd8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
index 4c31b3d..ddf54d1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_46dbd8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_46dbd8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.glsl
index 0dac9e3..f1644b2 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_46dbd8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_46dbd8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.spvasm
index 8703eec..bf46999 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_46dbd8 "textureNumLevels_46dbd8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_46dbd8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.wgsl
index 7079803..9825e50 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/46dbd8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 fn textureNumLevels_46dbd8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_46dbd8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl
index e19484c..61d1751 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_3d<u32>;
 
 // fn textureNumLevels(texture: texture_3d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_60d9b8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
index 6a13dbd..c22a41c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_60d9b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_60d9b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
index 6a13dbd..c22a41c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_60d9b8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_60d9b8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.glsl
index d6c93b2..17df031 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_60d9b8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_60d9b8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.spvasm
index 8c38d62..9d6a6c1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_60d9b8 "textureNumLevels_60d9b8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_60d9b8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.wgsl
index 6de885a..24b752a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/60d9b8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_3d<u32>;
 
 fn textureNumLevels_60d9b8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_60d9b8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl
index 74e603c..007bc0f 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<i32>;
 
 // fn textureNumLevels(texture: texture_cube_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_903920();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl
index 00f025d..3e19608 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_903920() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_903920()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl
index 00f025d..3e19608 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_903920() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_903920()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl
index b34a7ae..6e7e2be 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_903920() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_903920() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.spvasm
index c06660a..517b0b0 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_903920 "textureNumLevels_903920"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureNumLevels_903920 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.wgsl
index 6169b98..30213fb 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/903920.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<i32>;
 
 fn textureNumLevels_903920() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_903920();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl
index 01e0fce..4d2bb1c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_3d<i32>;
 
 // fn textureNumLevels(texture: texture_3d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_9a1a65();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
index 345e180..0bb8f40 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_9a1a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_9a1a65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
index 345e180..0bb8f40 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_9a1a65() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_9a1a65()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.glsl
index e8c1e08..2903ada 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_9a1a65() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_9a1a65() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.spvasm
index 3ae6fbd..2731c9b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_9a1a65 "textureNumLevels_9a1a65"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_9a1a65 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.wgsl
index 6b509fd..fb08e7e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/9a1a65.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_3d<i32>;
 
 fn textureNumLevels_9a1a65() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_9a1a65();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl
index d12357b..48f4d60 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<i32>;
 
 // fn textureNumLevels(texture: texture_2d_array<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_adc783();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
index 77ac28a..ac3a920 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_adc783() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_adc783()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
index 77ac28a..ac3a920 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_adc783() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_adc783()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.glsl
index 7e4d2ab..f7f2b85 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_adc783() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_adc783() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.spvasm
index 6fb2ecd..5d55871 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_adc783 "textureNumLevels_adc783"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_adc783 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.wgsl
index 6203849..3b52218 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/adc783.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<i32>;
 
 fn textureNumLevels_adc783() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_adc783();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl
index 163f94c..d7e1b60 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 
 // fn textureNumLevels(texture: texture_depth_2d_array) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ae911c();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
index 6f7f680..a52c06c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_ae911c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ae911c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
index 6f7f680..a52c06c 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 
 uint textureNumLevels_ae911c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ae911c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.glsl
index 3eb5f71..4b48a56 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ae911c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ae911c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.spvasm
index 6d44883..873784e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_ae911c "textureNumLevels_ae911c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_ae911c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.wgsl
index b6a6309..71068af 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ae911c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 fn textureNumLevels_ae911c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ae911c();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl
index b7f8157..85f5cc1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube<u32>;
 
 // fn textureNumLevels(texture: texture_cube<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c386c8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
index 242ef03..e86da7e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c386c8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c386c8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
index 242ef03..e86da7e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c386c8() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c386c8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.glsl
index df385f5..8cc5bba 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c386c8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c386c8() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.spvasm
index 8827c75..18471ec 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_c386c8 "textureNumLevels_c386c8"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_c386c8 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.wgsl
index 8a45378..8b52a44 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c386c8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube<u32>;
 
 fn textureNumLevels_c386c8() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c386c8();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl
index a43950f..b5bb7bd 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 
 // fn textureNumLevels(texture: texture_1d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c399f9();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
index dbecefd..693f96a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c399f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c399f9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
index dbecefd..693f96a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_c399f9() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c399f9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl
index 0365208..1b10371 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c399f9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c399f9() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.spvasm
index 0c0471d..693780b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_c399f9 "textureNumLevels_c399f9"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_c399f9 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.wgsl
index 8728c64..29ae814 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c399f9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 fn textureNumLevels_c399f9() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c399f9();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl
index 4a34300..44280b4 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 
 // fn textureNumLevels(texture: texture_depth_cube) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c8c25c();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
index 9089946..0ae28ef 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint textureNumLevels_c8c25c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c8c25c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
index 9089946..0ae28ef 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 
 uint textureNumLevels_c8c25c() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_c8c25c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.glsl
index 1de7296..55f99ac 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c8c25c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_c8c25c() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.spvasm
index d24e8ed..66da4db 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_c8c25c "textureNumLevels_c8c25c"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_c8c25c = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.wgsl
index ba1842f..4fc5e3e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/c8c25c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 fn textureNumLevels_c8c25c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_c8c25c();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl
index 868c15e..f9e5c95 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 
 // fn textureNumLevels(texture: texture_depth_2d) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d63126();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
index 9e9b8d4..5690a24 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint textureNumLevels_d63126() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d63126()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
index 9e9b8d4..5690a24 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 
 uint textureNumLevels_d63126() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d63126()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.glsl
index 9bde1c2..891c84d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d63126() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d63126() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.spvasm
index 0db67f4..85ada68 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_d63126 "textureNumLevels_d63126"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_d63126 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.wgsl
index a289a9d..864e89e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d63126.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 fn textureNumLevels_d63126() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d63126();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl
index 44d41bd..0909779 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 
 // fn textureNumLevels(texture: texture_cube_array<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d8f73b();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
index b3a5217..985bfd5 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_d8f73b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d8f73b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
index b3a5217..985bfd5 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_d8f73b() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_d8f73b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl
index f921540..89fcda7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d8f73b() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_d8f73b() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.spvasm
index 9310a46..168f5dc 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_d8f73b "textureNumLevels_d8f73b"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_d8f73b = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.wgsl
index 32c4c01..6713f6e 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/d8f73b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 fn textureNumLevels_d8f73b() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_d8f73b();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl
index 87cd9a3..f51f6da 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 
 // fn textureNumLevels(texture: texture_3d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ef7944();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
index f1e90fa..faaaa23 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_ef7944() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ef7944()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
index f1e90fa..faaaa23 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_ef7944() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_ef7944()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.glsl
index 14a31f0..adbbc4f 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ef7944() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_ef7944() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.spvasm
index e082e5f..0377729 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_ef7944 "textureNumLevels_ef7944"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_ef7944 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.wgsl
index f8a113f..debb74b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/ef7944.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 fn textureNumLevels_ef7944() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_ef7944();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl
index 7828024..d869f79 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_2d<u32>;
 
 // fn textureNumLevels(texture: texture_2d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_efd6df();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
index b054d4c..3a0f0f7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_efd6df() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_efd6df()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
index b054d4c..3a0f0f7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_efd6df() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_efd6df()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.glsl
index e8228b0..a1cfc24 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_efd6df() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_efd6df() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.spvasm
index 4cd2264..a9a9c69 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_efd6df "textureNumLevels_efd6df"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumLevels_efd6df = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.wgsl
index 7cd161d..5ba9858 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/efd6df.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_2d<u32>;
 
 fn textureNumLevels_efd6df() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_efd6df();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl
index 1b8b475..11d04d7 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_1d<i32>;
 
 // fn textureNumLevels(texture: texture_1d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_f742c0();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
index 3a40517..bf14311 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_f742c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_f742c0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
index 3a40517..bf14311 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<int4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_f742c0() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_f742c0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl
index e691671..48a2c6d 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_f742c0() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_f742c0() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.spvasm
index cf91e5c..403a672 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_f742c0 "textureNumLevels_f742c0"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,13 +53,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -76,7 +76,7 @@
 %textureNumLevels_f742c0 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQueryLevels %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.wgsl
index 520a5b5..a516fe1 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/f742c0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_1d<i32>;
 
 fn textureNumLevels_f742c0() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_f742c0();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl
index 300ff8d..3269fa6 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<u32>;
 
 // fn textureNumLevels(texture: texture_cube_array<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumLevels(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_fe2171();
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
index 79119ee..5066cba 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_fe2171() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_fe2171()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
index 79119ee..5066cba 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<uint4> arg_0 : register(t0, space1);
 
 uint textureNumLevels_fe2171() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumLevels_fe2171()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl
index cc37a77..1e88194 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_fe2171() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumLevels_fe2171() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.spvasm
index 4063e51..c02ec1a 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.spvasm
@@ -15,10 +15,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumLevels_fe2171 "textureNumLevels_fe2171"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -33,12 +33,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,12 +53,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumLevels_fe2171 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQueryLevels %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.wgsl
index aef5d42..45c301b 100644
--- a/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumLevels/fe2171.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<u32>;
 
 fn textureNumLevels_fe2171() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumLevels_fe2171();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl
index a9d5987..ce8c5a6 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<u32>;
 
 // fn textureNumSamples(texture: texture_multisampled_2d<u32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_50f399();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
index afb2598..ff5b642 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_50f399() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_50f399()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
index afb2598..ff5b642 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<uint4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_50f399() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_50f399()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.glsl
index 96364f3..259a84e 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_50f399() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_50f399() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.spvasm
index 4748307..753f997 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_50f399 "textureNumSamples_50f399"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %uint 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %uint 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumSamples_50f399 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySamples %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.wgsl
index f221ecc..8cc3c46 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/50f399.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<u32>;
 
 fn textureNumSamples_50f399() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_50f399();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl
index 0f822bd..b7313e1 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<i32>;
 
 // fn textureNumSamples(texture: texture_multisampled_2d<i32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_c1a777();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
index 0b259e0..372bd59 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_c1a777() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_c1a777()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
index 0b259e0..372bd59 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<int4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_c1a777() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_c1a777()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.glsl
index 1270eda..7a8014a 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_c1a777() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_c1a777() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.spvasm
index 07a2e90..82f809e 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_c1a777 "textureNumSamples_c1a777"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,13 +52,13 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-        %int = OpTypeInt 32 1
-         %15 = OpTypeImage %int 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+        %int = OpTypeInt 32 1
+         %18 = OpTypeImage %int 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %20 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -75,7 +75,7 @@
 %textureNumSamples_c1a777 = OpFunction %uint None %20
          %22 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %24 = OpLoad %15 %arg_0
+         %24 = OpLoad %18 %arg_0
          %23 = OpImageQuerySamples %uint %24
                OpStore %res %23
          %27 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.wgsl
index fee43aa..92ddcf1 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/c1a777.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<i32>;
 
 fn textureNumSamples_c1a777() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_c1a777();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl
index 4cb1efb..6e3da9a 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_multisampled_2d<f32>;
 
 // fn textureNumSamples(texture: texture_multisampled_2d<f32>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_dbb799();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
index db6540c..65089e6 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_dbb799() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_dbb799()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
index db6540c..65089e6 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_dbb799() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_dbb799()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.glsl
index 8bca5f1..c1a58d2 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_dbb799() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_dbb799() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.spvasm
index 73b5398..563cfa0 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_dbb799 "textureNumSamples_dbb799"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumSamples_dbb799 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySamples %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.wgsl
index 93c3787..8433491 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/dbb799.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_multisampled_2d<f32>;
 
 fn textureNumSamples_dbb799() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_dbb799();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl
index 83e976d..2245293 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0: texture_depth_multisampled_2d;
 
 // fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = textureNumSamples(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_ecd321();
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
index 87126da..1e9b7f9 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_ecd321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_ecd321()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
index 87126da..1e9b7f9 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DMS<float4> arg_0 : register(t0, space1);
 
 uint textureNumSamples_ecd321() {
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureNumSamples_ecd321()));
   return;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.glsl
index 4d6f57d..42c6ae9 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.glsl
@@ -13,15 +13,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_ecd321() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
@@ -48,15 +48,15 @@
   tint_symbol_1 inner;
 } tint_symbol_2;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint textureNumSamples_ecd321() {
   uint res = tint_symbol_2.inner.texture_builtin_value_0;
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uint prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.spvasm
index 0b0e75e..45b6346 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.spvasm
@@ -14,10 +14,10 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %textureNumSamples_ecd321 "textureNumSamples_ecd321"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
@@ -32,12 +32,12 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -52,12 +52,12 @@
 %_ptr_Output_float = OpTypePointer Output %float
          %12 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %12
-         %15 = OpTypeImage %float 2D 0 0 1 1 Unknown
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %18 = OpTypeImage %float 2D 0 0 1 1 Unknown
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_0 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %uint
 %_ptr_Function_uint = OpTypePointer Function %uint
        %void = OpTypeVoid
@@ -74,7 +74,7 @@
 %textureNumSamples_ecd321 = OpFunction %uint None %19
          %21 = OpLabel
         %res = OpVariable %_ptr_Function_uint Function %9
-         %23 = OpLoad %15 %arg_0
+         %23 = OpLoad %18 %arg_0
          %22 = OpImageQuerySamples %uint %23
                OpStore %res %22
          %26 = OpLoad %uint %res
diff --git a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.wgsl
index 0daf4f5..4788cfd 100644
--- a/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureNumSamples/ecd321.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_multisampled_2d;
 
 fn textureNumSamples_ecd321() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureNumSamples_ecd321();
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl
index 0ce9c6b..2b13f40 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_0dff6c();
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl
index 4578857..e77dc50 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_0dff6c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl
index 4578857..e77dc50 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_0dff6c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl
index 9b66ab7..dd44965 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSample_0dff6c() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_0dff6c();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm
index b8bed60..4c548a3 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.spvasm
@@ -7,33 +7,33 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_0dff6c "textureSample_0dff6c"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -41,7 +41,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %19 = OpConstantNull %v2float
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %7
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -58,8 +58,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %19
         %res = OpVariable %_ptr_Function_float Function %34
                OpStore %arg_2 %16
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
+         %23 = OpLoad %10 %arg_1
+         %24 = OpLoad %7 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %27 = OpLoad %v2float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %26 %27 ConstOffset %31
diff --git a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl
index 5401e0e..a4cde33 100644
--- a/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/0dff6c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_0dff6c();
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl
index f5e4d13..c260c5c 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_17e988();
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl
index 94906ee..ce11f91 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_17e988()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl
index 94906ee..ce11f91 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_17e988()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl
index 5fbab45..6bda044 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_17e988() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_17e988();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm
index 2a83fb1..f45c26e 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_17e988 "textureSample_17e988"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %25 = OpConstantNull %int
-         %29 = OpTypeSampledImage %3
+         %29 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %39 = OpConstantComposite %v2int %int_1 %int_1
@@ -64,8 +64,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %42
                OpStore %arg_2 %17
                OpStore %arg_3 %int_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
+         %27 = OpLoad %11 %arg_1
+         %28 = OpLoad %8 %arg_0
          %30 = OpSampledImage %29 %28 %27
          %32 = OpLoad %v2float %arg_2
          %33 = OpCompositeExtract %float %32 0
diff --git a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl
index f237b31..10eb560 100644
--- a/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/17e988.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_17e988();
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl
index e69f2c7..0a85f81 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_193203();
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl
index 5cf3301..362dbc1 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_193203()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl
index 5cf3301..362dbc1 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_193203()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl
index 0905ee6..c1ff85c 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_193203() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_193203();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm
index 8d7ade5..5568e83 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_193203 "textureSample_193203"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %25 = OpConstantNull %uint
-         %29 = OpTypeSampledImage %3
+         %29 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -65,8 +65,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %44
                OpStore %arg_2 %17
                OpStore %arg_3 %uint_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
+         %27 = OpLoad %11 %arg_1
+         %28 = OpLoad %8 %arg_0
          %30 = OpSampledImage %29 %28 %27
          %32 = OpLoad %v2float %arg_2
          %33 = OpCompositeExtract %float %32 0
diff --git a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl
index d358043..83e97ad 100644
--- a/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/193203.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_193203();
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl
index ee95451..a6175ca 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_1a4e1b();
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
index f10f3f7..8fdab95 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_1a4e1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
index f10f3f7..8fdab95 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_1a4e1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl
index 00b77a5..2e3b12c 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSample_1a4e1b() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_1a4e1b();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm
index c9dce4f..3249551 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_1a4e1b "textureSample_1a4e1b"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %24 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %30 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
          %41 = OpConstantNull %float
@@ -61,8 +61,8 @@
         %res = OpVariable %_ptr_Function_float Function %41
                OpStore %arg_2 %16
                OpStore %arg_3 %uint_1
-         %28 = OpLoad %7 %arg_1
-         %29 = OpLoad %3 %arg_0
+         %28 = OpLoad %10 %arg_1
+         %29 = OpLoad %7 %arg_0
          %31 = OpSampledImage %30 %29 %28
          %33 = OpLoad %v2float %arg_2
          %34 = OpCompositeExtract %float %33 0
diff --git a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl
index 81a0141..fbe9fe8 100644
--- a/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/1a4e1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_1a4e1b();
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl
index 0cd6014..77604bc 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_2149ec();
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl
index e4ab472..5a0ab48 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_2149ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl
index e4ab472..5a0ab48 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_2149ec()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl
index 8e48cc7..dd31bdb 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSample_2149ec() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_2149ec();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm
index 5475c53..e84c10c 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.spvasm
@@ -7,41 +7,41 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_2149ec "textureSample_2149ec"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %17 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %20 = OpConstantNull %v3float
-         %24 = OpTypeSampledImage %3
+         %24 = OpTypeSampledImage %8
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -58,8 +58,8 @@
       %arg_2 = OpVariable %_ptr_Function_v3float Function %20
         %res = OpVariable %_ptr_Function_v4float Function %33
                OpStore %arg_2 %17
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
+         %22 = OpLoad %11 %arg_1
+         %23 = OpLoad %8 %arg_0
          %25 = OpSampledImage %24 %23 %22
          %26 = OpLoad %v3float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %25 %26 ConstOffset %30
diff --git a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl
index 93720f9..d928e41 100644
--- a/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/2149ec.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_2149ec();
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl
index 6af352b..dc7a831 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_38bbb9();
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl
index 142a708..a87d3f3 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_38bbb9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl
index 142a708..a87d3f3 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_38bbb9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl
index bb7d9ab..05867fc 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSample_38bbb9() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_38bbb9();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm
index 7465359..ebe36f8 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.spvasm
@@ -7,33 +7,33 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_38bbb9 "textureSample_38bbb9"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -41,7 +41,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %19 = OpConstantNull %v2float
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %7
 %_ptr_Function_float = OpTypePointer Function %float
          %30 = OpConstantNull %float
        %void = OpTypeVoid
@@ -54,8 +54,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %19
         %res = OpVariable %_ptr_Function_float Function %30
                OpStore %arg_2 %16
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
+         %23 = OpLoad %10 %arg_1
+         %24 = OpLoad %7 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %27 = OpLoad %v2float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %26 %27
diff --git a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl
index 5eb8526..17e32cc 100644
--- a/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/38bbb9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_38bbb9();
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl
index c466dca..69518f3 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_3b50bd();
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl
index 13a22ee..4bee03e 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_3b50bd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl
index 13a22ee..4bee03e 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_3b50bd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl
index b9faad4..3a46adf 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSample_3b50bd() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_3b50bd();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm
index ea9689b..4a09efa 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.spvasm
@@ -7,41 +7,41 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_3b50bd "textureSample_3b50bd"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %17 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %20 = OpConstantNull %v3float
-         %24 = OpTypeSampledImage %3
+         %24 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -54,8 +54,8 @@
       %arg_2 = OpVariable %_ptr_Function_v3float Function %20
         %res = OpVariable %_ptr_Function_v4float Function %29
                OpStore %arg_2 %17
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
+         %22 = OpLoad %11 %arg_1
+         %23 = OpLoad %8 %arg_0
          %25 = OpSampledImage %24 %23 %22
          %26 = OpLoad %v3float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %25 %26
diff --git a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl
index 20949bc..f924c7d 100644
--- a/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/3b50bd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_3b50bd();
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl
index b803ead..c4986a3 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4703d0();
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl
index d5c4e93..f31db99 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_4703d0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl
index d5c4e93..f31db99 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_4703d0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm
index da29585..cb8cf62 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_4703d0 "textureSample_4703d0"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %24 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %30 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -65,8 +65,8 @@
         %res = OpVariable %_ptr_Function_float Function %45
                OpStore %arg_2 %16
                OpStore %arg_3 %uint_1
-         %28 = OpLoad %7 %arg_1
-         %29 = OpLoad %3 %arg_0
+         %28 = OpLoad %10 %arg_1
+         %29 = OpLoad %7 %arg_0
          %31 = OpSampledImage %30 %29 %28
          %33 = OpLoad %v2float %arg_2
          %34 = OpCompositeExtract %float %33 0
diff --git a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl
index 41d22d4..1fb8430 100644
--- a/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4703d0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4703d0();
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
index 9ed21aa..193672f 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4dd1bf();
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
index b1fbadb..3f168d3 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_4dd1bf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
index b1fbadb..3f168d3 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_4dd1bf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm
index 5657224..67d7037 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_4dd1bf "textureSample_4dd1bf"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %25 = OpConstantNull %int
-         %29 = OpTypeSampledImage %3
+         %29 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %40 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -62,8 +62,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %40
                OpStore %arg_2 %17
                OpStore %arg_3 %int_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
+         %27 = OpLoad %11 %arg_1
+         %28 = OpLoad %8 %arg_0
          %30 = OpSampledImage %29 %28 %27
          %31 = OpLoad %v3float %arg_2
          %32 = OpCompositeExtract %float %31 0
diff --git a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl
index 5f873d0..feff99c 100644
--- a/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/4dd1bf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_4dd1bf();
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl
index 66e7678..5807252 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_51b514();
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl
index e200a56..b41835a 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_51b514()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl
index e200a56..b41835a 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_51b514()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl
index bf9049b..7af6b64 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSample_51b514() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_51b514();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm
index 63fb08d..36b4ead 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.spvasm
@@ -7,41 +7,41 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_51b514 "textureSample_51b514"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %17 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %20 = OpConstantNull %v2float
-         %24 = OpTypeSampledImage %3
+         %24 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -54,8 +54,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %20
         %res = OpVariable %_ptr_Function_v4float Function %29
                OpStore %arg_2 %17
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
+         %22 = OpLoad %11 %arg_1
+         %23 = OpLoad %8 %arg_0
          %25 = OpSampledImage %24 %23 %22
          %26 = OpLoad %v2float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %25 %26
diff --git a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl
index 31452d7..263c2dc 100644
--- a/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/51b514.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_51b514();
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl
index a6b41cb..5b470b7 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_60bf45();
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl
index d4492b8..bfa06f2 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_60bf45()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl
index d4492b8..bfa06f2 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_60bf45()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm
index 86a0864..6896247 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_60bf45 "textureSample_60bf45"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %30 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %40 = OpConstantComposite %v2int %int_1 %int_1
@@ -64,8 +64,8 @@
         %res = OpVariable %_ptr_Function_float Function %43
                OpStore %arg_2 %16
                OpStore %arg_3 %int_1
-         %28 = OpLoad %7 %arg_1
-         %29 = OpLoad %3 %arg_0
+         %28 = OpLoad %10 %arg_1
+         %29 = OpLoad %7 %arg_0
          %31 = OpSampledImage %30 %29 %28
          %33 = OpLoad %v2float %arg_2
          %34 = OpCompositeExtract %float %33 0
diff --git a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl
index a00339e..cfedbd8 100644
--- a/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/60bf45.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_60bf45();
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl
index 6616148..f8db532 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6717ca();
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl
index 869a1a3..9d7ac1e 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6717ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl
index 869a1a3..9d7ac1e 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6717ca()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl
index 4c61700..4f99911 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_6717ca() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_6717ca();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm
index b2f7867..c33478a 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_6717ca "textureSample_6717ca"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %25 = OpConstantNull %int
-         %29 = OpTypeSampledImage %3
+         %29 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %40 = OpConstantNull %v4float
@@ -62,8 +62,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %40
                OpStore %arg_2 %17
                OpStore %arg_3 %int_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
+         %27 = OpLoad %11 %arg_1
+         %28 = OpLoad %8 %arg_0
          %30 = OpSampledImage %29 %28 %27
          %32 = OpLoad %v2float %arg_2
          %33 = OpCompositeExtract %float %32 0
diff --git a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl
index b98d890..19a8d6a 100644
--- a/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/6717ca.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6717ca();
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl
index ddf4041..b6c9a29 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_1d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6e64fb();
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.dxc.hlsl
index 15e70ba..cc05ac3 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6e64fb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.fxc.hlsl
index 15e70ba..cc05ac3 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture1D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_6e64fb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.glsl
index b80a298..7cd77d2 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSample_6e64fb() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_6e64fb();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.spvasm
index 49653a2..b87d1a0 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.spvasm
@@ -8,39 +8,39 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_6e64fb "textureSample_6e64fb"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 1D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 1D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %float_1 = OpConstant %float 1
 %_ptr_Function_float = OpTypePointer Function %float
          %18 = OpConstantNull %float
-         %22 = OpTypeSampledImage %3
+         %22 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %27 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -53,8 +53,8 @@
       %arg_2 = OpVariable %_ptr_Function_float Function %18
         %res = OpVariable %_ptr_Function_v4float Function %27
                OpStore %arg_2 %float_1
-         %20 = OpLoad %7 %arg_1
-         %21 = OpLoad %3 %arg_0
+         %20 = OpLoad %11 %arg_1
+         %21 = OpLoad %8 %arg_0
          %23 = OpSampledImage %22 %21 %20
          %24 = OpLoad %float %arg_2
          %19 = OpImageSampleImplicitLod %v4float %23 %24
diff --git a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.wgsl
index 89dc866..f9bfc1e 100644
--- a/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/6e64fb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_1d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_6e64fb();
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl
index ea8fedf..8b39256 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7e9ffd();
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
index 655a1fc..24345a0 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7e9ffd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
index 655a1fc..24345a0 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7e9ffd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl
index 373eaaa..7a221ab 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSample_7e9ffd() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_7e9ffd();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm
index b6b4762..b4263a3 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_7e9ffd "textureSample_7e9ffd"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %30 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
          %41 = OpConstantNull %float
@@ -62,8 +62,8 @@
         %res = OpVariable %_ptr_Function_float Function %41
                OpStore %arg_2 %16
                OpStore %arg_3 %int_1
-         %28 = OpLoad %7 %arg_1
-         %29 = OpLoad %3 %arg_0
+         %28 = OpLoad %10 %arg_1
+         %29 = OpLoad %7 %arg_0
          %31 = OpSampledImage %30 %29 %28
          %33 = OpLoad %v2float %arg_2
          %34 = OpCompositeExtract %float %33 0
diff --git a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl
index b040e81..7f4fa29 100644
--- a/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7e9ffd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7e9ffd();
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
index 3c4713c..d7494a4 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7fd8cb();
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
index 98c2781..afc45ec 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7fd8cb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
index 98c2781..afc45ec 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_7fd8cb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm
index ae9fb38..98fa60b 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.spvasm
@@ -8,34 +8,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_7fd8cb "textureSample_7fd8cb"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %24 = OpConstantNull %uint
     %v4float = OpTypeVector %float 4
-         %30 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %7
 %_ptr_Function_float = OpTypePointer Function %float
          %41 = OpConstantNull %float
        %void = OpTypeVoid
@@ -61,8 +61,8 @@
         %res = OpVariable %_ptr_Function_float Function %41
                OpStore %arg_2 %16
                OpStore %arg_3 %uint_1
-         %28 = OpLoad %7 %arg_1
-         %29 = OpLoad %3 %arg_0
+         %28 = OpLoad %10 %arg_1
+         %29 = OpLoad %7 %arg_0
          %31 = OpSampledImage %30 %29 %28
          %32 = OpLoad %v3float %arg_2
          %33 = OpCompositeExtract %float %32 0
diff --git a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl
index b9dc5c4..bfc360c 100644
--- a/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/7fd8cb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_7fd8cb();
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl
index f0e4797..85ae100 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_85c4ba();
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl
index a7abdd2..001af3f 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_85c4ba()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl
index a7abdd2..001af3f 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_85c4ba()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl
index dcac879..804c978 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSample_85c4ba() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_85c4ba();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm
index 5988414..e6fc3a3 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.spvasm
@@ -7,41 +7,41 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_85c4ba "textureSample_85c4ba"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %17 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %20 = OpConstantNull %v2float
-         %24 = OpTypeSampledImage %3
+         %24 = OpTypeSampledImage %8
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -58,8 +58,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %20
         %res = OpVariable %_ptr_Function_v4float Function %33
                OpStore %arg_2 %17
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
+         %22 = OpLoad %11 %arg_1
+         %23 = OpLoad %8 %arg_0
          %25 = OpSampledImage %24 %23 %22
          %26 = OpLoad %v2float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %25 %26 ConstOffset %30
diff --git a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl
index 4ea29c1..a0fa391 100644
--- a/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/85c4ba.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_85c4ba();
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
index 3cc4997..c98e217 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_bc7477();
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl
index 0b49302..ad25175 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_bc7477()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl
index 0b49302..ad25175 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_bc7477()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm
index c90f793..486065d 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_bc7477 "textureSample_bc7477"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %25 = OpConstantNull %uint
-         %29 = OpTypeSampledImage %3
+         %29 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %40 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -61,8 +61,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %40
                OpStore %arg_2 %17
                OpStore %arg_3 %uint_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
+         %27 = OpLoad %11 %arg_1
+         %28 = OpLoad %8 %arg_0
          %30 = OpSampledImage %29 %28 %27
          %31 = OpLoad %v3float %arg_2
          %32 = OpCompositeExtract %float %31 0
diff --git a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl
index 918df6e..c572f3a 100644
--- a/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/bc7477.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_bc7477();
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
index f124151..1771e1b 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_c2f4e8();
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
index 81168ed..5730538 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_c2f4e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
index 81168ed..5730538 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_c2f4e8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm
index ae60d1f..bafe91f 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.spvasm
@@ -8,34 +8,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_c2f4e8 "textureSample_c2f4e8"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -47,7 +47,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %24 = OpConstantNull %int
     %v4float = OpTypeVector %float 4
-         %30 = OpTypeSampledImage %3
+         %30 = OpTypeSampledImage %7
 %_ptr_Function_float = OpTypePointer Function %float
          %41 = OpConstantNull %float
        %void = OpTypeVoid
@@ -62,8 +62,8 @@
         %res = OpVariable %_ptr_Function_float Function %41
                OpStore %arg_2 %16
                OpStore %arg_3 %int_1
-         %28 = OpLoad %7 %arg_1
-         %29 = OpLoad %3 %arg_0
+         %28 = OpLoad %10 %arg_1
+         %29 = OpLoad %7 %arg_0
          %31 = OpSampledImage %30 %29 %28
          %32 = OpLoad %v3float %arg_2
          %33 = OpCompositeExtract %float %32 0
diff --git a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl
index 6bfcc5f..9b83863 100644
--- a/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/c2f4e8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_c2f4e8();
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl
index 9209a41..36ad47e 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_d6b281();
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl
index 0cdb8b7..296bca5 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_d6b281()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl
index 0cdb8b7..296bca5 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_d6b281()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl
index 761e6a8..3b83dc4 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSample_d6b281() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_d6b281();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm
index 276ca40..94da597 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_d6b281 "textureSample_d6b281"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -46,7 +46,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %25 = OpConstantNull %uint
-         %29 = OpTypeSampledImage %3
+         %29 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %40 = OpConstantNull %v4float
@@ -61,8 +61,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %40
                OpStore %arg_2 %17
                OpStore %arg_3 %uint_1
-         %27 = OpLoad %7 %arg_1
-         %28 = OpLoad %3 %arg_0
+         %27 = OpLoad %11 %arg_1
+         %28 = OpLoad %8 %arg_0
          %30 = OpSampledImage %29 %28 %27
          %32 = OpLoad %v2float %arg_2
          %33 = OpCompositeExtract %float %32 0
diff --git a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl
index 6359815..f78e3fd 100644
--- a/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/d6b281.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_d6b281();
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl
index e3283d7..7713d87 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureSample(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_e53267();
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl
index 81b19a8..342db30 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_e53267()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl
index 81b19a8..342db30 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSample_e53267()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl
index 95a5766..f2d94bd 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSample_e53267() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_e53267();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm
index 1dfb731..9761364 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.spvasm
@@ -7,41 +7,41 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_e53267 "textureSample_e53267"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %17 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %20 = OpConstantNull %v3float
-         %24 = OpTypeSampledImage %3
+         %24 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %29 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -54,8 +54,8 @@
       %arg_2 = OpVariable %_ptr_Function_v3float Function %20
         %res = OpVariable %_ptr_Function_v4float Function %29
                OpStore %arg_2 %17
-         %22 = OpLoad %7 %arg_1
-         %23 = OpLoad %3 %arg_0
+         %22 = OpLoad %11 %arg_1
+         %23 = OpLoad %8 %arg_0
          %25 = OpSampledImage %24 %23 %22
          %26 = OpLoad %v3float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %25 %26
diff --git a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl
index 6aab5d3..4418843 100644
--- a/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/e53267.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_e53267();
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl
index a0d8ddb..61da721 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: f32 = textureSample(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_ea7030();
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl
index b5201c6..e99caea 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_ea7030()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl
index b5201c6..e99caea 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -7,8 +8,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSample_ea7030()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl
index 9efec44..d07b1a1 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSample_ea7030() {
@@ -10,10 +14,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSample_ea7030();
 }
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm
index 2736f3a..bc74d3e 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.spvasm
@@ -7,33 +7,33 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSample_ea7030 "textureSample_ea7030"
                OpName %arg_2 "arg_2"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -41,7 +41,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %19 = OpConstantNull %v3float
     %v4float = OpTypeVector %float 4
-         %25 = OpTypeSampledImage %3
+         %25 = OpTypeSampledImage %7
 %_ptr_Function_float = OpTypePointer Function %float
          %30 = OpConstantNull %float
        %void = OpTypeVoid
@@ -54,8 +54,8 @@
       %arg_2 = OpVariable %_ptr_Function_v3float Function %19
         %res = OpVariable %_ptr_Function_float Function %30
                OpStore %arg_2 %16
-         %23 = OpLoad %7 %arg_1
-         %24 = OpLoad %3 %arg_0
+         %23 = OpLoad %10 %arg_1
+         %24 = OpLoad %7 %arg_0
          %26 = OpSampledImage %25 %24 %23
          %27 = OpLoad %v3float %arg_2
          %21 = OpImageSampleImplicitLod %v4float %26 %27
diff --git a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl
index 44ae8ff..d55963a 100644
--- a/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSample/ea7030.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSample_ea7030();
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl
index d686a47..c100254 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_external;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_7c04e6();
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
index c05994d..a21f34b 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.dxc.hlsl
@@ -29,6 +29,7 @@
 cbuffer cbuffer_ext_tex_params : register(b3, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -119,8 +120,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_7c04e6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
index c05994d..a21f34b 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.fxc.hlsl
@@ -29,6 +29,7 @@
 cbuffer cbuffer_ext_tex_params : register(b3, space1) {
   uint4 ext_tex_params[17];
 };
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -119,8 +120,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_7c04e6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
index 265ef49..422c1cf 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.glsl
@@ -64,6 +64,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -102,10 +106,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -183,6 +183,10 @@
   ExternalTextureParams_std140 inner;
 } ext_tex_params;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
   bvec3 cond = lessThan(abs(v), vec3(params.D));
   vec3 t = (sign(v) * ((params.C * abs(v)) + params.F));
@@ -221,10 +225,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
index 34a7bf7..1a531a2 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.spvasm
@@ -46,11 +46,11 @@
                OpMemberName %ExternalTextureParams_std140 16 "visibleSize"
                OpMemberName %ExternalTextureParams_std140 17 "plane1CoordFactor"
                OpName %ext_tex_params "ext_tex_params"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %gammaCorrection "gammaCorrection"
                OpName %v "v"
                OpName %params "params"
@@ -130,14 +130,14 @@
                OpDecorate %ext_tex_params NonWritable
                OpDecorate %ext_tex_params DescriptorSet 1
                OpDecorate %ext_tex_params Binding 3
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %ExternalTextureParams 0 Offset 0
                OpMemberDecorate %ExternalTextureParams 1 Offset 4
                OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -185,13 +185,13 @@
 %ext_tex_params_block_std140 = OpTypeStruct %ExternalTextureParams_std140
 %_ptr_Uniform_ext_tex_params_block_std140 = OpTypePointer Uniform %ext_tex_params_block_std140
 %ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block_std140 Uniform
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %27 = OpTypeSampler
-%_ptr_UniformConstant_27 = OpTypePointer UniformConstant %27
-      %arg_1 = OpVariable %_ptr_UniformConstant_27 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
+         %30 = OpTypeSampler
+%_ptr_UniformConstant_30 = OpTypePointer UniformConstant %30
+      %arg_1 = OpVariable %_ptr_UniformConstant_30 UniformConstant
          %31 = OpTypeFunction %v3float %v3float %GammaTransferParams
        %bool = OpTypeBool
      %v3bool = OpTypeVector %bool 3
@@ -199,7 +199,7 @@
          %51 = OpConstantNull %v3float
 %mat3v2float = OpTypeMatrix %v2float 3
 %ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float %mat3v2float %mat3v2float %v2float %v2float %v2float %v2float %v2uint %v2float
-         %71 = OpTypeFunction %v4float %12 %12 %27 %v2float %ExternalTextureParams
+         %71 = OpTypeFunction %v4float %12 %12 %30 %v2float %ExternalTextureParams
     %float_1 = OpConstant %float 1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
      %uint_1 = OpConstant %uint 1
@@ -260,7 +260,7 @@
 %textureSampleExternal = OpFunction %v4float None %71
      %plane0 = OpFunctionParameter %12
      %plane1 = OpFunctionParameter %12
-        %smp = OpFunctionParameter %27
+        %smp = OpFunctionParameter %30
       %coord = OpFunctionParameter %v2float
    %params_0 = OpFunctionParameter %ExternalTextureParams
          %80 = OpLabel
@@ -381,7 +381,7 @@
                OpStore %arg_2 %186
         %191 = OpLoad %12 %arg_0
         %192 = OpLoad %12 %ext_tex_plane_1
-        %193 = OpLoad %27 %arg_1
+        %193 = OpLoad %30 %arg_1
         %194 = OpLoad %v2float %arg_2
         %198 = OpAccessChain %_ptr_Uniform_ExternalTextureParams_std140 %ext_tex_params %uint_0
         %199 = OpLoad %ExternalTextureParams_std140 %198
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
index c2f95a5..5e3829c 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/7c04e6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_external;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_7c04e6();
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl
index b33ef35..9ef5e41 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -43,8 +46,6 @@
   var res: vec4<f32> = textureSampleBaseClampToEdge(arg_0, arg_1, arg_2);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_9ca02c();
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
index 09e0c51..462e06f 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.dxc.hlsl
@@ -7,6 +7,7 @@
   return t.SampleLevel(s, clamped, 0.0f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -16,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_9ca02c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
index 09e0c51..462e06f 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.fxc.hlsl
@@ -7,6 +7,7 @@
   return t.SampleLevel(s, clamped, 0.0f);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -16,8 +17,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBaseClampToEdge_9ca02c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
index 6e30015..2cef01f 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.glsl
@@ -10,6 +10,10 @@
   return textureLod(t_s, clamped, 0.0f);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 vec4 textureSampleBaseClampToEdge_9ca02c() {
   vec2 arg_2 = vec2(1.0f);
@@ -17,10 +21,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -44,6 +44,10 @@
   return textureLod(t_s, clamped, 0.0f);
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 vec4 textureSampleBaseClampToEdge_9ca02c() {
   vec2 arg_2 = vec2(1.0f);
@@ -51,10 +55,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
index 93449d5..5fcec02 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.spvasm
@@ -15,11 +15,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %tint_textureSampleBaseClampToEdge "tint_textureSampleBaseClampToEdge"
                OpName %t "t"
                OpName %s "s"
@@ -39,14 +39,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -58,17 +58,17 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
     %v2float = OpTypeVector %float 2
-         %19 = OpTypeFunction %v4float %12 %15 %v2float
+         %19 = OpTypeFunction %v4float %15 %18 %v2float
        %uint = OpTypeInt 32 0
      %v2uint = OpTypeVector %uint 2
         %int = OpTypeInt 32 1
@@ -78,7 +78,7 @@
     %float_1 = OpConstant %float 1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %41 = OpConstantNull %v2float
-         %44 = OpTypeSampledImage %12
+         %44 = OpTypeSampledImage %15
          %46 = OpTypeFunction %v4float
          %49 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v4float = OpTypePointer Function %v4float
@@ -92,8 +92,8 @@
          %76 = OpConstantNull %VertexOutput
      %uint_1 = OpConstant %uint 1
 %tint_textureSampleBaseClampToEdge = OpFunction %v4float None %19
-          %t = OpFunctionParameter %12
-          %s = OpFunctionParameter %15
+          %t = OpFunctionParameter %15
+          %s = OpFunctionParameter %18
       %coord = OpFunctionParameter %v2float
          %25 = OpLabel
          %39 = OpVariable %_ptr_Function_v2float Function %41
@@ -112,8 +112,8 @@
       %arg_2 = OpVariable %_ptr_Function_v2float Function %41
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %49
-         %52 = OpLoad %12 %arg_0
-         %53 = OpLoad %15 %arg_1
+         %52 = OpLoad %15 %arg_0
+         %53 = OpLoad %18 %arg_1
          %54 = OpLoad %v2float %arg_2
          %51 = OpFunctionCall %v4float %tint_textureSampleBaseClampToEdge %52 %53 %54
                OpStore %res %51
diff --git a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
index 74a28e4..dbabd0e 100644
--- a/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBaseClampToEdge/9ca02c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -8,8 +10,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBaseClampToEdge_9ca02c();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl
index 59f2780..e9a71ef 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_1c707e();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
index dcb66b8..b3968d7 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_1c707e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
index dcb66b8..b3968d7 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_1c707e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl
index d653adf..1c6ca0e 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_1c707e() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_1c707e();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm
index a7f2c00..9b9726b 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.spvasm
@@ -7,36 +7,36 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_1c707e "textureSampleBias_1c707e"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -49,7 +49,7 @@
          %25 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
          %28 = OpConstantNull %float
-         %32 = OpTypeSampledImage %3
+         %32 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %44 = OpConstantNull %v4float
@@ -66,8 +66,8 @@
                OpStore %arg_2 %17
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %30 = OpLoad %7 %arg_1
-         %31 = OpLoad %3 %arg_0
+         %30 = OpLoad %11 %arg_1
+         %31 = OpLoad %8 %arg_0
          %33 = OpSampledImage %32 %31 %30
          %35 = OpLoad %v2float %arg_2
          %36 = OpCompositeExtract %float %35 0
diff --git a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl
index 309223e..3130d76 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/1c707e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_1c707e();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl
index 322e8c8..33a8fcc 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_53b9f7();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
index cff493b..f0d0b31 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_53b9f7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
index cff493b..f0d0b31 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_53b9f7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl
index 233b9dc..32ef704 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleBias_53b9f7() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_53b9f7();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm
index b91d69f..cf37fb9 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_53b9f7 "textureSampleBias_53b9f7"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -44,7 +44,7 @@
          %20 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpConstantNull %float
-         %27 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %33 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -59,8 +59,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %33
                OpStore %arg_2 %17
                OpStore %arg_3 %float_1
-         %25 = OpLoad %7 %arg_1
-         %26 = OpLoad %3 %arg_0
+         %25 = OpLoad %11 %arg_1
+         %26 = OpLoad %8 %arg_0
          %28 = OpSampledImage %27 %26 %25
          %29 = OpLoad %v3float %arg_2
          %30 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl
index 59ee01a..64da4ca 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/53b9f7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_53b9f7();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl
index 29aa88e..32b73d1 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_594824();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl
index 48a157c..1947436 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_594824()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl
index 48a157c..1947436 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_594824()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl
index 347574e..78de793 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleBias_594824() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_594824();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm
index 9df0449..c21a581 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_594824 "textureSampleBias_594824"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -44,7 +44,7 @@
          %20 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpConstantNull %float
-         %27 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %8
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -63,8 +63,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %37
                OpStore %arg_2 %17
                OpStore %arg_3 %float_1
-         %25 = OpLoad %7 %arg_1
-         %26 = OpLoad %3 %arg_0
+         %25 = OpLoad %11 %arg_1
+         %26 = OpLoad %8 %arg_0
          %28 = OpSampledImage %27 %26 %25
          %29 = OpLoad %v3float %arg_2
          %30 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl
index a24c5fa..9c84da9 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/594824.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_594824();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl
index 0917f76..9593687 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_6a9113();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
index a6a84d0..df51683 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_6a9113()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
index a6a84d0..df51683 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_6a9113()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl
index 9e5aeb7..2824028 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleBias_6a9113() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_6a9113();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm
index 8adc160..5c1c680 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_6a9113 "textureSampleBias_6a9113"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -44,7 +44,7 @@
          %20 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpConstantNull %float
-         %27 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %33 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -59,8 +59,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %33
                OpStore %arg_2 %17
                OpStore %arg_3 %float_1
-         %25 = OpLoad %7 %arg_1
-         %26 = OpLoad %3 %arg_0
+         %25 = OpLoad %11 %arg_1
+         %26 = OpLoad %8 %arg_0
          %28 = OpSampledImage %27 %26 %25
          %29 = OpLoad %v2float %arg_2
          %30 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl
index a57ff89..796d302 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/6a9113.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_6a9113();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl
index 6f0042c..7534d58 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_80e579();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
index 070f9dc..e46f704 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_80e579()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
index 070f9dc..e46f704 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_80e579()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl
index 543e971..7c5a534 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_80e579() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_80e579();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm
index 763ae82..07c8f27 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.spvasm
@@ -7,36 +7,36 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_80e579 "textureSampleBias_80e579"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -49,7 +49,7 @@
          %25 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
          %28 = OpConstantNull %float
-         %32 = OpTypeSampledImage %3
+         %32 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %44 = OpConstantNull %v4float
@@ -67,8 +67,8 @@
                OpStore %arg_2 %17
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %30 = OpLoad %7 %arg_1
-         %31 = OpLoad %3 %arg_0
+         %30 = OpLoad %11 %arg_1
+         %31 = OpLoad %8 %arg_0
          %33 = OpSampledImage %32 %31 %30
          %35 = OpLoad %v2float %arg_2
          %36 = OpCompositeExtract %float %35 0
diff --git a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl
index b83bfa1..d340df9 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/80e579.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_80e579();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl
index 253f148..48360996 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_87915c();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
index 2440b97..9baa16a 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_87915c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
index 2440b97..9baa16a 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_87915c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl
index 2f43396..8895958 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_87915c() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_87915c();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm
index 4bfe7f0..75473a2 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.spvasm
@@ -7,36 +7,36 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_87915c "textureSampleBias_87915c"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -49,7 +49,7 @@
          %25 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
          %28 = OpConstantNull %float
-         %32 = OpTypeSampledImage %3
+         %32 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -70,8 +70,8 @@
                OpStore %arg_2 %17
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %30 = OpLoad %7 %arg_1
-         %31 = OpLoad %3 %arg_0
+         %30 = OpLoad %11 %arg_1
+         %31 = OpLoad %8 %arg_0
          %33 = OpSampledImage %32 %31 %30
          %35 = OpLoad %v2float %arg_2
          %36 = OpCompositeExtract %float %35 0
diff --git a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl
index 0c2a86c..51f2e5c 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/87915c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_87915c();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl
index d983ca4..d2bacd0 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_9dbb51();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
index 743e8ac..889e10e 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_9dbb51()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
index 743e8ac..889e10e 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_9dbb51()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl
index 09d47e8..0f4a761 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleBias_9dbb51() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_9dbb51();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm
index 821bc21..3209fa7 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.spvasm
@@ -7,36 +7,36 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_9dbb51 "textureSampleBias_9dbb51"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -49,7 +49,7 @@
          %25 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
          %28 = OpConstantNull %float
-         %32 = OpTypeSampledImage %3
+         %32 = OpTypeSampledImage %8
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %43 = OpConstantComposite %v2int %int_1 %int_1
@@ -69,8 +69,8 @@
                OpStore %arg_2 %17
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %30 = OpLoad %7 %arg_1
-         %31 = OpLoad %3 %arg_0
+         %30 = OpLoad %11 %arg_1
+         %31 = OpLoad %8 %arg_0
          %33 = OpSampledImage %32 %31 %30
          %35 = OpLoad %v2float %arg_2
          %36 = OpCompositeExtract %float %35 0
diff --git a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl
index 449a2f0..97aff6e 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/9dbb51.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_9dbb51();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl
index 9dffc2b..9511f07 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_a161cf();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
index 389fa59..90680d4 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_a161cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
index 389fa59..90680d4 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_a161cf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl
index 6228b88..44f1a72 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleBias_a161cf() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_a161cf();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm
index 03de60d..8d298cc 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_a161cf "textureSampleBias_a161cf"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -44,7 +44,7 @@
          %20 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpConstantNull %float
-         %27 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %8
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -63,8 +63,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %37
                OpStore %arg_2 %17
                OpStore %arg_3 %float_1
-         %25 = OpLoad %7 %arg_1
-         %26 = OpLoad %3 %arg_0
+         %25 = OpLoad %11 %arg_1
+         %26 = OpLoad %8 %arg_0
          %28 = OpSampledImage %27 %26 %25
          %29 = OpLoad %v2float %arg_2
          %30 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl
index 8c9768a..3643078 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/a161cf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_a161cf();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
index 48ee6e4..bddb20e 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_c6953d();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
index e042417..d457992 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_c6953d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
index e042417..d457992 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_c6953d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm
index 790c3f5..85e81fb 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.spvasm
@@ -8,36 +8,36 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_c6953d "textureSampleBias_c6953d"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -50,7 +50,7 @@
          %25 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
          %28 = OpConstantNull %float
-         %32 = OpTypeSampledImage %3
+         %32 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %44 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -66,8 +66,8 @@
                OpStore %arg_2 %17
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %30 = OpLoad %7 %arg_1
-         %31 = OpLoad %3 %arg_0
+         %30 = OpLoad %11 %arg_1
+         %31 = OpLoad %8 %arg_0
          %33 = OpSampledImage %32 %31 %30
          %34 = OpLoad %v3float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl
index 974e423..cb2e981 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/c6953d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_c6953d();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl
index cb395cf..af29fdc 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_d3fa1b();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
index 6cae25c..9071192 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_d3fa1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
index 6cae25c..9071192 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_d3fa1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl
index de39044..e07ab71 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleBias_d3fa1b() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleBias_d3fa1b();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm
index 4b1cbca..df31c46 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_d3fa1b "textureSampleBias_d3fa1b"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -44,7 +44,7 @@
          %20 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
          %23 = OpConstantNull %float
-         %27 = OpTypeSampledImage %3
+         %27 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %33 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -59,8 +59,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %33
                OpStore %arg_2 %17
                OpStore %arg_3 %float_1
-         %25 = OpLoad %7 %arg_1
-         %26 = OpLoad %3 %arg_0
+         %25 = OpLoad %11 %arg_1
+         %26 = OpLoad %8 %arg_0
          %28 = OpSampledImage %27 %26 %25
          %29 = OpLoad %v3float %arg_2
          %30 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl
index 82f7fc4..4707ea3 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/d3fa1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_d3fa1b();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
index ac88ab3..dd42ca4 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleBias(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_eed7c4();
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
index 163a35f..f5e0ae6 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_eed7c4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
index 163a35f..f5e0ae6 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleBias_eed7c4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm
index d286dc3..8bdd9eb 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.spvasm
@@ -8,36 +8,36 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleBias_eed7c4 "textureSampleBias_eed7c4"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
     %v4float = OpTypeVector %float 4
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %8 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_8 = OpTypePointer UniformConstant %8
+      %arg_0 = OpVariable %_ptr_UniformConstant_8 UniformConstant
+         %11 = OpTypeSampler
+%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11
+      %arg_1 = OpVariable %_ptr_UniformConstant_11 UniformConstant
          %12 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -50,7 +50,7 @@
          %25 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
          %28 = OpConstantNull %float
-         %32 = OpTypeSampledImage %3
+         %32 = OpTypeSampledImage %8
 %_ptr_Function_v4float = OpTypePointer Function %v4float
          %44 = OpConstantNull %v4float
        %void = OpTypeVoid
@@ -67,8 +67,8 @@
                OpStore %arg_2 %17
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %30 = OpLoad %7 %arg_1
-         %31 = OpLoad %3 %arg_0
+         %30 = OpLoad %11 %arg_1
+         %31 = OpLoad %8 %arg_0
          %33 = OpSampledImage %32 %31 %30
          %34 = OpLoad %v3float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl
index 4861277..ecc0e03 100644
--- a/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleBias/eed7c4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleBias_eed7c4();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
index bdc228b..d4e9614 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_1912e5();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
index 3267fee..340b40c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_1912e5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
index 3267fee..340b40c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_1912e5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm
index b87daa8..7048f20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_1912e5 "textureSampleCompare_1912e5"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -49,7 +49,7 @@
          %24 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
          %27 = OpConstantNull %float
-         %31 = OpTypeSampledImage %3
+         %31 = OpTypeSampledImage %7
     %v4float = OpTypeVector %float 4
        %void = OpTypeVoid
          %44 = OpTypeFunction %void
@@ -64,8 +64,8 @@
                OpStore %arg_2 %16
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %29 = OpLoad %7 %arg_1
-         %30 = OpLoad %3 %arg_0
+         %29 = OpLoad %10 %arg_1
+         %30 = OpLoad %7 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %34 = OpLoad %v3float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl
index 9113a35..bc92ef8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/1912e5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_1912e5();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl
index c7081fc..deb9dd9 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_3a5923();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
index 2810d6d..25179b3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_3a5923()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
index 2810d6d..25179b3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_3a5923()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl
index 775a417..7dcd129 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompare_3a5923() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_3a5923();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm
index f95e2a3..f356bac 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_3a5923 "textureSampleCompare_3a5923"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -43,7 +43,7 @@
          %19 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpConstantNull %float
-         %26 = OpTypeSampledImage %3
+         %26 = OpTypeSampledImage %7
        %void = OpTypeVoid
          %32 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -56,8 +56,8 @@
         %res = OpVariable %_ptr_Function_float Function %22
                OpStore %arg_2 %16
                OpStore %arg_3 %float_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
+         %24 = OpLoad %10 %arg_1
+         %25 = OpLoad %7 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %28 = OpLoad %v2float %arg_2
          %29 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl
index e5bc900..f1b1097 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/3a5923.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_3a5923();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl
index ba68213..286a1db 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_63fb83();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
index bd330a7..872c5dc 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_63fb83()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
index bd330a7..872c5dc 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_63fb83()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl
index 39fee27..643b951 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSampleCompare_63fb83() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_63fb83();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm
index 7c93798..465e4ac 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_63fb83 "textureSampleCompare_63fb83"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -43,7 +43,7 @@
          %19 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpConstantNull %float
-         %26 = OpTypeSampledImage %3
+         %26 = OpTypeSampledImage %7
        %void = OpTypeVoid
          %32 = OpTypeFunction %void
        %uint = OpTypeInt 32 0
@@ -56,8 +56,8 @@
         %res = OpVariable %_ptr_Function_float Function %22
                OpStore %arg_2 %16
                OpStore %arg_3 %float_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
+         %24 = OpLoad %10 %arg_1
+         %25 = OpLoad %7 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %28 = OpLoad %v3float %arg_2
          %29 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl
index ebede07..520e2b5 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/63fb83.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_63fb83();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl
index 901c39c..586c918 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_7b5025();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
index 2a27746..11550ae 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_7b5025()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
index 2a27746..11550ae 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_7b5025()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm
index 65e278d..4de1cbf 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_7b5025 "textureSampleCompare_7b5025"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -48,7 +48,7 @@
          %24 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
          %27 = OpConstantNull %float
-         %31 = OpTypeSampledImage %3
+         %31 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -67,8 +67,8 @@
                OpStore %arg_2 %16
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %29 = OpLoad %7 %arg_1
-         %30 = OpLoad %3 %arg_0
+         %29 = OpLoad %10 %arg_1
+         %30 = OpLoad %7 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %34 = OpLoad %v2float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl
index dfd504d..28935f1 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/7b5025.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_7b5025();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl
index 1fa7abb..99749d8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_90ae56();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
index 354b2b6..c650b48 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_90ae56()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
index 354b2b6..c650b48 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_90ae56()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl
index db5aa89..9b5ed3d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompare_90ae56() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_90ae56();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm
index 0dfb592..4e4928b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_90ae56 "textureSampleCompare_90ae56"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -48,7 +48,7 @@
          %24 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
          %27 = OpConstantNull %float
-         %31 = OpTypeSampledImage %3
+         %31 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
        %void = OpTypeVoid
          %43 = OpTypeFunction %void
@@ -63,8 +63,8 @@
                OpStore %arg_2 %16
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %29 = OpLoad %7 %arg_1
-         %30 = OpLoad %3 %arg_0
+         %29 = OpLoad %10 %arg_1
+         %30 = OpLoad %7 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %34 = OpLoad %v2float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl
index 808668b..c337e01 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/90ae56.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_90ae56();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
index 19180f1..a0a1ed3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_a3ca7e();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
index 8704d55..23aacee 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_a3ca7e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
index 8704d55..23aacee 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_a3ca7e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
index 191a52b..c55f9a3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.spvasm
@@ -8,35 +8,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_a3ca7e "textureSampleCompare_a3ca7e"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -49,7 +49,7 @@
          %24 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
          %27 = OpConstantNull %float
-         %31 = OpTypeSampledImage %3
+         %31 = OpTypeSampledImage %7
     %v4float = OpTypeVector %float 4
        %void = OpTypeVoid
          %44 = OpTypeFunction %void
@@ -65,8 +65,8 @@
                OpStore %arg_2 %16
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %29 = OpLoad %7 %arg_1
-         %30 = OpLoad %3 %arg_0
+         %29 = OpLoad %10 %arg_1
+         %30 = OpLoad %7 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %34 = OpLoad %v3float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
index 1891059..60ccb40 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/a3ca7e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_a3ca7e();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl
index c4e4393..23df195 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_af1051();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
index fbf2f0d..4fc903d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_af1051()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
index fbf2f0d..4fc903d 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_af1051()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm
index 17e570c..9eec4b3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_af1051 "textureSampleCompare_af1051"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -48,7 +48,7 @@
          %24 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
          %27 = OpConstantNull %float
-         %31 = OpTypeSampledImage %3
+         %31 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %42 = OpConstantComposite %v2int %int_1 %int_1
@@ -66,8 +66,8 @@
                OpStore %arg_2 %16
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %29 = OpLoad %7 %arg_1
-         %30 = OpLoad %3 %arg_0
+         %29 = OpLoad %10 %arg_1
+         %30 = OpLoad %7 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %34 = OpLoad %v2float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl
index 958f3df..0a49740 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/af1051.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_af1051();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl
index ce623bd..2e26c94 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dd431d();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
index 2549fff..7f04a4c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dd431d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
index 2549fff..7f04a4c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dd431d()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl
index 3baf93f..dca3f3c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompare_dd431d() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_dd431d();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm
index bf7b61c..b661dc3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.spvasm
@@ -7,35 +7,35 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_dd431d "textureSampleCompare_dd431d"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %arg_4 "arg_4"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -48,7 +48,7 @@
          %24 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
          %27 = OpConstantNull %float
-         %31 = OpTypeSampledImage %3
+         %31 = OpTypeSampledImage %7
     %v3float = OpTypeVector %float 3
        %void = OpTypeVoid
          %43 = OpTypeFunction %void
@@ -64,8 +64,8 @@
                OpStore %arg_2 %16
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %29 = OpLoad %7 %arg_1
-         %30 = OpLoad %3 %arg_0
+         %29 = OpLoad %10 %arg_1
+         %30 = OpLoad %7 %arg_0
          %32 = OpSampledImage %31 %30 %29
          %34 = OpLoad %v2float %arg_2
          %35 = OpCompositeExtract %float %34 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl
index 230d476..2cd328f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dd431d.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dd431d();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl
index 518cc9e..e24d61f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompare(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dec064();
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
index aa3a47f..7926dba 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dec064()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
index aa3a47f..7926dba 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompare_dec064()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl
index b0e3039..c0fbcec 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompare_dec064() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void fragment_main() {
   prevent_dce.inner = textureSampleCompare_dec064();
 }
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm
index d4e447f..d8645f9 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.spvasm
@@ -7,34 +7,34 @@
                OpMemoryModel Logical GLSL450
                OpEntryPoint Fragment %fragment_main "fragment_main"
                OpExecutionMode %fragment_main OriginUpperLeft
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompare_dec064 "textureSampleCompare_dec064"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
                OpName %res "res"
                OpName %fragment_main "fragment_main"
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
       %float = OpTypeFloat 32
-          %3 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3
-      %arg_0 = OpVariable %_ptr_UniformConstant_3 UniformConstant
-          %7 = OpTypeSampler
-%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
-      %arg_1 = OpVariable %_ptr_UniformConstant_7 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+          %7 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7
+      %arg_0 = OpVariable %_ptr_UniformConstant_7 UniformConstant
+         %10 = OpTypeSampler
+%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10
+      %arg_1 = OpVariable %_ptr_UniformConstant_10 UniformConstant
          %11 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -43,7 +43,7 @@
          %19 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
          %22 = OpConstantNull %float
-         %26 = OpTypeSampledImage %3
+         %26 = OpTypeSampledImage %7
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -60,8 +60,8 @@
         %res = OpVariable %_ptr_Function_float Function %22
                OpStore %arg_2 %16
                OpStore %arg_3 %float_1
-         %24 = OpLoad %7 %arg_1
-         %25 = OpLoad %3 %arg_0
+         %24 = OpLoad %10 %arg_1
+         %25 = OpLoad %7 %arg_0
          %27 = OpSampledImage %26 %25 %24
          %28 = OpLoad %v2float %arg_2
          %29 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl
index 5595169..3f674f8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompare/dec064.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompare_dec064();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl
index bb344cc..f4a5bd8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1116ed();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
index 4cec120..3ec7f9b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1116ed()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
index 4cec120..3ec7f9b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1116ed()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
index 18a008e..9dfdea3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1116ed() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1116ed() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
index e2b6f9f..c6f4d18 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_1116ed "textureSampleCompareLevel_1116ed"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
        %void = OpTypeVoid
@@ -97,8 +97,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
index 964d669..c5dacf8 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1116ed.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1116ed();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl
index c2f46df..c4af5c4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1568e3();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
index ecfc4e1..6928c07 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1568e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
index ecfc4e1..6928c07 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_1568e3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
index 7b37244..26f3dcb 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1568e3() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp samplerCubeShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_1568e3() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
index 66c64d1..6283023 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_1568e3 "textureSampleCompareLevel_1568e3"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
     %float_0 = OpConstant %float 0
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -89,8 +89,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
index 67384f9..aab4973 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/1568e3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_1568e3();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl
index fbbfdd2..353bb32 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_2ad2b1();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
index aecea08..d3e1561 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_2ad2b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
index aecea08..d3e1561 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_2ad2b1()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
index e4c086d..5e0225b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_2ad2b1() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_2ad2b1() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
index 80170d1..24329cf 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_2ad2b1 "textureSampleCompareLevel_2ad2b1"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
     %float_0 = OpConstant %float 0
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -89,8 +89,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
index b9062c0..1cc869c 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/2ad2b1.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_2ad2b1();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
index 6ce212e..f76e4c3 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_4cf3a2();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
index dff18f5..31f6038 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_4cf3a2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
index dff18f5..31f6038 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_4cf3a2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
index ff77a1c..ae3a005 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_4cf3a2 "textureSampleCompareLevel_4cf3a2"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %float_0 = OpConstant %float 0
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -97,8 +97,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
index dfa5cfc..c60bc33 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/4cf3a2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_4cf3a2();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl
index 1ebc04e..78ea747 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7dc3c0();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
index 13e5beb..4ac2d2a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7dc3c0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
index 13e5beb..4ac2d2a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7dc3c0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
index 1fa3ed2..d60a800 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7dc3c0() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DArrayShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7dc3c0() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
index 29ed356..6d30899 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_7dc3c0 "textureSampleCompareLevel_7dc3c0"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
        %void = OpTypeVoid
@@ -95,8 +95,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
index 7a93b51..4206c2f 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7dc3c0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7dc3c0();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl
index 88e520d..2e63872 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7f2b9a();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
index 0365cb8..cca5e76 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7f2b9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
index 0365cb8..cca5e76 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_7f2b9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
index 5d2460c..5573e43 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7f2b9a() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleCompareLevel_7f2b9a() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
index adf7bb4..0d695d5 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_7f2b9a "textureSampleCompareLevel_7f2b9a"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -93,8 +93,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
index 499772b..8b8bcb2 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/7f2b9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_7f2b9a();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
index fd39826..0071fc4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_958c87();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
index 21701fd..b082f2a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_958c87()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
index 21701fd..b082f2a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_958c87()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
index 9698d0d..60bf740 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_958c87 "textureSampleCompareLevel_958c87"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %float_0 = OpConstant %float 0
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -95,8 +95,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
index 7d97485..b9d010b 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/958c87.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_958c87();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl
index 790f4da..fce5a13 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_b6e47c();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
index 0b9db95..731fb8e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_b6e47c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
index 0b9db95..731fb8e 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_b6e47c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
index a716f37..24bb470 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_b6e47c "textureSampleCompareLevel_b6e47c"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
       %v2int = OpTypeVector %int 2
@@ -99,8 +99,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
index c7d42ba..7253b6a 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/b6e47c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_b6e47c();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl
index 23f7519..071cb20 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler_comparison;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleCompareLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_bcb3dd();
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
index bec5e00..aa458e4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_bcb3dd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
index bec5e00..aa458e4 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerComparisonState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleCompareLevel_bcb3dd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
index 2139974..8df18fd 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleCompareLevel_bcb3dd "textureSampleCompareLevel_bcb3dd"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
     %float_0 = OpConstant %float 0
         %int = OpTypeInt 32 1
@@ -99,8 +99,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
index fed8d31..10a80fa 100644
--- a/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleCompareLevel/bcb3dd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler_comparison;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleCompareLevel_bcb3dd();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl
index af5916b..c1c204f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_21402b();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
index e89098c..2ddd954 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_21402b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
index e89098c..2ddd954 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_21402b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl
index 67ed065..eb9379b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_21402b() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_21402b() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm
index 05cc92c..1f4beef 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_21402b "textureSampleGrad_21402b"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,22 +54,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
@@ -90,8 +90,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %24
                OpStore %arg_4 %24
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %v3float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl
index 3c9434f..f451d08 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/21402b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_21402b();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl
index 1307e81..7bbde92 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_2ecd8f();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
index 2127c46..c74de94 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_2ecd8f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
index 2127c46..c74de94 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_2ecd8f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl
index 6d18511..eb326e1 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_2ecd8f() {
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -32,6 +32,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_2ecd8f() {
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
index 26f52d3..94f6819 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_2ecd8f "textureSampleGrad_2ecd8f"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -98,8 +98,8 @@
                OpStore %arg_3 %int_1
                OpStore %arg_4 %24
                OpStore %arg_5 %24
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
index 09e58905..721adbc 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/2ecd8f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_2ecd8f();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl
index 7bc03f4..0f000e0 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_521263();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
index 57c5ec5..cf787f4 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_521263()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
index 57c5ec5..cf787f4 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_521263()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl
index 04a8468..cf71d71 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_521263() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_521263() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm
index bb36e00..fa1252b 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_521263 "textureSampleGrad_521263"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,22 +54,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
@@ -90,8 +90,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %24
                OpStore %arg_4 %24
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %v2float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl
index e8f0398..698cc79 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/521263.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_521263();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl
index 9995afa..ad7c6fe 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5312f4();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
index f909301..8648a1d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5312f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
index f909301..8648a1d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5312f4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl
index 1af5b81..133eb48 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleGrad_5312f4() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleGrad_5312f4() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm
index dd3ec76..1e9c71a 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_5312f4 "textureSampleGrad_5312f4"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,22 +54,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %41 = OpTypeFunction %void
@@ -90,8 +90,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %24
                OpStore %arg_4 %24
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %v3float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl
index 6a277d6..04dc337 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5312f4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5312f4();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl
index a4bb05a..65c79bc 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5884dd();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
index 21f66d5..1845a2e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5884dd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
index 21f66d5..1845a2e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_5884dd()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl
index 0b33106..a4307f3 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_5884dd() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleGrad_5884dd() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm
index 279b5a8..c925c3e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_5884dd "textureSampleGrad_5884dd"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,22 +54,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v3float %float_1 %float_1 %float_1
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %24
                OpStore %arg_4 %24
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %v3float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl
index 30ffd72..246aaca 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/5884dd.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_5884dd();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl
index c6310d9..17bb13a 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -47,8 +50,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_7cd6de();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
index f8bf2f9..c4aa0c1 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_7cd6de()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
index f8bf2f9..c4aa0c1 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_7cd6de()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl
index 2aa0136..568ed7e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_7cd6de() {
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -32,6 +32,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_7cd6de() {
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm
index 5e7cc27..0b0a1ac 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_7cd6de "textureSampleGrad_7cd6de"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -100,8 +100,8 @@
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %24
                OpStore %arg_5 %24
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl
index e7fb852..fba1480 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/7cd6de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -12,8 +14,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_7cd6de();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl
index e60729d..f82f9bb 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_a09131();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
index db95f8f..b5a6640 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_a09131()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
index db95f8f..b5a6640 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_a09131()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl
index 863d8b6..5b3364d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_a09131() {
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -32,6 +32,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_a09131() {
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm
index 116c2a6..9d490f6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_a09131 "textureSampleGrad_a09131"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %24
                OpStore %arg_5 %24
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl
index 0e437aa..096567e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/a09131.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_a09131();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
index 84b5a05..3e4ddaf 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_bbb58f();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
index ebecc67..0accb45 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_bbb58f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
index ebecc67..0accb45 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_bbb58f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm
index 73e9fbf..e8fbe4d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_bbb58f "textureSampleGrad_bbb58f"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -37,14 +37,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,15 +56,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %52 = OpTypeFunction %void
@@ -96,8 +96,8 @@
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %24
                OpStore %arg_5 %24
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl
index 5f48e62..7939014 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/bbb58f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_bbb58f();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl
index f233d0b..8c4347d 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d4e3c5();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
index 8a3d856..24409e9 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d4e3c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
index 8a3d856..24409e9 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d4e3c5()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl
index 784d19d..8b40e7e 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_d4e3c5() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleGrad_d4e3c5() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
index c3170a1..9df65be 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_d4e3c5 "textureSampleGrad_d4e3c5"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,22 +54,22 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
          %24 = OpConstantComposite %v2float %float_1 %float_1
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %24
                OpStore %arg_4 %24
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %v2float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
index b0f6208..dc22520 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d4e3c5.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d4e3c5();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl
index 84ffbae..fb0b8c2 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -47,8 +50,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5, arg_6);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d65515();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
index 4ced089..9cd6a25 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d65515()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
index 4ced089..9cd6a25 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_d65515()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl
index 1709fc3..7c415cc 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_d65515() {
@@ -13,10 +17,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -32,6 +32,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleGrad_d65515() {
@@ -43,10 +47,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm
index 6889bf8..e84fa8f 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_d65515 "textureSampleGrad_d65515"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %50 = OpConstantComposite %v2int %int_1 %int_1
@@ -100,8 +100,8 @@
                OpStore %arg_3 %int_1
                OpStore %arg_4 %24
                OpStore %arg_5 %24
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl
index 4527e32..fc7a2cd 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/d65515.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -12,8 +14,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_d65515();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
index 82352c5..dc6d315 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleGrad(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_e383db();
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
index f89685b..f7b97b6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_e383db()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
index f89685b..f7b97b6 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -10,8 +11,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleGrad_e383db()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm
index 7ef257b..25d305a 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleGrad_e383db "textureSampleGrad_e383db"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -37,14 +37,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -56,15 +56,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %52 = OpTypeFunction %void
@@ -98,8 +98,8 @@
                OpStore %arg_3 %int_1
                OpStore %arg_4 %24
                OpStore %arg_5 %24
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl
index 52fbde6..20f2456 100644
--- a/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleGrad/e383db.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleGrad_e383db();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl
index 5e97813..dad2849 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_02be59();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
index 9d756de..568e1ba 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_02be59()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
index 9d756de..568e1ba 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_02be59()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl
index 1f3edc8..917a2ec 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_02be59() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_02be59() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm
index 7ed73fd..9f12961 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_02be59 "textureSampleLevel_02be59"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %37 = OpTypeSampledImage %12
+         %37 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
-         %35 = OpLoad %15 %arg_1
-         %36 = OpLoad %12 %arg_0
+         %35 = OpLoad %18 %arg_1
+         %36 = OpLoad %15 %arg_0
          %38 = OpSampledImage %37 %36 %35
          %39 = OpLoad %v2float %arg_2
          %41 = OpLoad %int %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl
index 7d347ca..e010975 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/02be59.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_02be59();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl
index 43959a1..365ffeb 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0b0a1b();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
index cd7c2f8..9650875 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0b0a1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
index cd7c2f8..9650875 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0b0a1b()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl
index e842cea..1785c77 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_0b0a1b() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_0b0a1b() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
index 510437c..25d9647 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_0b0a1b "textureSampleLevel_0b0a1b"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
index 9629854..b6eb8c5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0b0a1b.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0b0a1b();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
index bfbe715..9936a28 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0bdd9a();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
index a892c6d..ad8be34 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0bdd9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
index a892c6d..ad8be34 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_0bdd9a()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
index 8c6a880..e20efe3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_0bdd9a "textureSampleLevel_0bdd9a"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -96,8 +96,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
index bb802fc..a234ff3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/0bdd9a.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_0bdd9a();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl
index d30bbcf..071c6e1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1b0291();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
index 2151b7c..491a230 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1b0291()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
index 2151b7c..491a230 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1b0291()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm
index 2d124ca..39f47b7 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_1b0291 "textureSampleLevel_1b0291"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %37 = OpTypeSampledImage %12
+         %37 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
-         %35 = OpLoad %15 %arg_1
-         %36 = OpLoad %12 %arg_0
+         %35 = OpLoad %18 %arg_1
+         %36 = OpLoad %15 %arg_0
          %38 = OpSampledImage %37 %36 %35
          %39 = OpLoad %v3float %arg_2
          %41 = OpLoad %int %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl
index 9bb1480..35f16a3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1b0291.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1b0291();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl
index 72c5747..2f3cee4 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1bf73e();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
index 55a79db..5fbd907 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1bf73e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
index 55a79db..5fbd907 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_1bf73e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm
index fccedf2..3be2ca2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_1bf73e "textureSampleLevel_1bf73e"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %int_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl
index c242af2..9291668 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/1bf73e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_1bf73e();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl
index e8ec99c..87e7376 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_265cc7();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
index dea59e4..72eeb7f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_265cc7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
index dea59e4..72eeb7f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_265cc7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl
index c389af0..cb696fa 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_265cc7() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_265cc7() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm
index c5f3df8..1c98b2b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_265cc7 "textureSampleLevel_265cc7"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl
index 5c32a99..3e8dbee 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/265cc7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_265cc7();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl
index b91709d..5d18160 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_2974eb();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
index e6c5e95..be2c4da 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_2974eb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
index e6c5e95..be2c4da 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_2974eb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm
index a076595..e2d4164 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_2974eb "textureSampleLevel_2974eb"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %37 = OpConstantNull %uint
-         %42 = OpTypeSampledImage %12
+         %42 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %uint_1
-         %40 = OpLoad %15 %arg_1
-         %41 = OpLoad %12 %arg_0
+         %40 = OpLoad %18 %arg_1
+         %41 = OpLoad %15 %arg_0
          %43 = OpSampledImage %42 %41 %40
          %45 = OpLoad %v2float %arg_2
          %46 = OpCompositeExtract %float %45 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl
index ce9ba63..637a765 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/2974eb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_2974eb();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl
index ec74179..a03aad3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_302be4();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
index f041c71..a169e5c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_302be4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
index f041c71..a169e5c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_302be4()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl
index 809b3cf..f0c6fa8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_302be4() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_302be4() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm
index 40673fd..aacbe63 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_302be4 "textureSampleLevel_302be4"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
@@ -96,8 +96,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl
index 6bb7434..433e39a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/302be4.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_302be4();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl
index 74bf473..aad88a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36780e();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
index aa1b163..5ae0e08 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36780e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
index aa1b163..5ae0e08 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36780e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm
index 9c7dec5..2331d67 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_36780e "textureSampleLevel_36780e"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %50 = OpConstantComposite %v2int %int_1 %int_1
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %int_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl
index 16f8fb0..ec655b3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36780e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36780e();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl
index 2ac077d..ba28cb8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36f0d3();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
index 5319fd0..3d2e79c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36f0d3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
index 5319fd0..3d2e79c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_36f0d3()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm
index ee12c49..321d9cb 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_36f0d3 "textureSampleLevel_36f0d3"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %37 = OpConstantNull %uint
-         %42 = OpTypeSampledImage %12
+         %42 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %54 = OpConstantComposite %v2int %int_1 %int_1
@@ -100,8 +100,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %uint_1
-         %40 = OpLoad %15 %arg_1
-         %41 = OpLoad %12 %arg_0
+         %40 = OpLoad %18 %arg_1
+         %41 = OpLoad %15 %arg_0
          %43 = OpSampledImage %42 %41 %40
          %45 = OpLoad %v2float %arg_2
          %46 = OpCompositeExtract %float %45 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl
index ccdb6c6..610f0db 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/36f0d3.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_36f0d3();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl
index 6c6d648..7597365 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_3c3442();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
index 14a7abb..9036ecc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_3c3442()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
index 14a7abb..9036ecc 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_3c3442()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm
index 8381b10..f76da2f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_3c3442 "textureSampleLevel_3c3442"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %37 = OpConstantNull %int
-         %42 = OpTypeSampledImage %12
+         %42 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %int_1
-         %40 = OpLoad %15 %arg_1
-         %41 = OpLoad %12 %arg_0
+         %40 = OpLoad %18 %arg_1
+         %41 = OpLoad %15 %arg_0
          %43 = OpSampledImage %42 %41 %40
          %45 = OpLoad %v2float %arg_2
          %46 = OpCompositeExtract %float %45 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl
index 0e3aad1..e24e0cd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/3c3442.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_3c3442();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl
index 949339f..25afae6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_615583();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
index 955eeb2..76a02df 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_615583()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
index 955eeb2..76a02df 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_615583()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm
index 8ce0d64..f9b69f1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_615583 "textureSampleLevel_615583"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %uint_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl
index 3e26e2f..2d3d4d5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/615583.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_615583();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl
index d7a351c..8a5efdf 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_73e892();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
index 5876ef0..04f657d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_73e892()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
index 5876ef0..04f657d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_73e892()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl
index 17f3685..fdf33b3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_73e892() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_73e892() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm
index 48b3f0e..a91a447 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_73e892 "textureSampleLevel_73e892"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %37 = OpTypeSampledImage %12
+         %37 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
@@ -90,8 +90,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
-         %35 = OpLoad %15 %arg_1
-         %36 = OpLoad %12 %arg_0
+         %35 = OpLoad %18 %arg_1
+         %36 = OpLoad %15 %arg_0
          %38 = OpSampledImage %37 %36 %35
          %39 = OpLoad %v2float %arg_2
          %41 = OpLoad %uint %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl
index c1c4d66..4bbf9d8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/73e892.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_73e892();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl
index ac9b425..ebfc647 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_749baf();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
index 6bcf58b..91a97a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_749baf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
index 6bcf58b..91a97a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_749baf()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl
index 34cf94a..abccee0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_749baf() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_749baf() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm
index 20f5691..34c39a5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_749baf "textureSampleLevel_749baf"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %37 = OpTypeSampledImage %12
+         %37 = OpTypeSampledImage %15
       %v2int = OpTypeVector %int 2
          %43 = OpConstantComposite %v2int %int_1 %int_1
 %_ptr_Function_float = OpTypePointer Function %float
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
-         %35 = OpLoad %15 %arg_1
-         %36 = OpLoad %12 %arg_0
+         %35 = OpLoad %18 %arg_1
+         %36 = OpLoad %15 %arg_0
          %38 = OpSampledImage %37 %36 %35
          %39 = OpLoad %v2float %arg_2
          %41 = OpLoad %int %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl
index 98b5ba8..f5ede39 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/749baf.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_749baf();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
index d4fa088..1dd319d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_941a53();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
index 998ec76..ccb1dbd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_941a53()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
index 998ec76..ccb1dbd 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_941a53()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm
index f7cc164..9e5faa1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_941a53 "textureSampleLevel_941a53"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %52 = OpTypeFunction %void
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %uint_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl
index 62d5b1d..fd40742 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/941a53.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_941a53();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
index e458e08..862379a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_a12142();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
index 58722f1..a64c4f0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_a12142()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
index 58722f1..a64c4f0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_a12142()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm
index 59db0a2..820b407 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_a12142 "textureSampleLevel_a12142"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -78,7 +78,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %37 = OpConstantNull %uint
-         %42 = OpTypeSampledImage %12
+         %42 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %56 = OpTypeFunction %void
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %uint_1
-         %40 = OpLoad %15 %arg_1
-         %41 = OpLoad %12 %arg_0
+         %40 = OpLoad %18 %arg_1
+         %41 = OpLoad %15 %arg_0
          %43 = OpSampledImage %42 %41 %40
          %44 = OpLoad %v3float %arg_2
          %45 = OpCompositeExtract %float %44 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl
index 5ee87d9..ed822e2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/a12142.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_a12142();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
index 001024f..97cceb9 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_aab3b9();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
index 2000e4f..84159f8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_aab3b9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
index 2000e4f..84159f8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_aab3b9()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm
index 75d29e2d..4d2798d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_aab3b9 "textureSampleLevel_aab3b9"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -75,7 +75,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %51 = OpTypeFunction %void
@@ -94,8 +94,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl
index 9da1b93..e95eb49 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/aab3b9.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_aab3b9();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl
index 8686342..25175a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_abfcc0();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
index fa0e8ec..93e6bf8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_abfcc0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
index fa0e8ec..93e6bf8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_abfcc0()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl
index 69fbb85..6fd49a5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_abfcc0() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_abfcc0() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm
index e709614..231d202 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_abfcc0 "textureSampleLevel_abfcc0"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -88,8 +88,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl
index 7d1931a..325495a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/abfcc0.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_abfcc0();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
index f918e9f..e684452 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae5e39();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
index 8d5f397..47a236d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae5e39()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
index 8d5f397..47a236d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae5e39()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm
index fff4b15..039523b 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_ae5e39 "textureSampleLevel_ae5e39"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %52 = OpTypeFunction %void
@@ -96,8 +96,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %int_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %40 = OpLoad %v3float %arg_2
          %41 = OpCompositeExtract %float %40 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl
index d45f65d..03b715f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae5e39.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae5e39();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl
index edc969d..8d42897 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae92a2();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
index 457d8ff..11f6501 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae92a2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
index 457d8ff..11f6501 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ae92a2()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm
index 34df29e..bfe9cc3 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_ae92a2 "textureSampleLevel_ae92a2"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %37 = OpTypeSampledImage %12
+         %37 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %45 = OpTypeFunction %void
@@ -90,8 +90,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
-         %35 = OpLoad %15 %arg_1
-         %36 = OpLoad %12 %arg_0
+         %35 = OpLoad %18 %arg_1
+         %36 = OpLoad %15 %arg_0
          %38 = OpSampledImage %37 %36 %35
          %39 = OpLoad %v3float %arg_2
          %41 = OpLoad %uint %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl
index f94ed26..43b5260 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ae92a2.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ae92a2();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl
index 625fe74..d959a03 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_b7c55c();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
index 7207117..ab4fbdf 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_b7c55c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
index 7207117..ab4fbdf 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_b7c55c()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl
index 19a6205..f7c625a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_b7c55c() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_b7c55c() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm
index 7ee5dbe..5ed32b8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_b7c55c "textureSampleLevel_b7c55c"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_int = OpTypePointer Function %int
          %32 = OpConstantNull %int
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %49 = OpConstantComposite %v2int %int_1 %int_1
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %int_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl
index c3a3e96..71ed22f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/b7c55c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_b7c55c();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl
index 7265ffa..fc46a2f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_cube<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c32df7();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
index 476db87..bdcb068 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c32df7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
index 476db87..bdcb068 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCube<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c32df7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl
index 21a050b..6aa53a2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleLevel_c32df7() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp samplerCube arg_0_arg_1;
 
 vec4 textureSampleLevel_c32df7() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm
index 81a5da7..d8ab966 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_c32df7 "textureSampleLevel_c32df7"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float Cube 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -88,8 +88,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl
index 7408068..c155037 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c32df7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_cube<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c32df7();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl
index 28e9873..7518933 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -44,8 +47,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c6aca6();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
index a98fbbd..c0506e0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c6aca6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
index a98fbbd..c0506e0 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_c6aca6()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl
index a0b2b50..20a1772 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_c6aca6() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2D arg_0_arg_1;
 
 vec4 textureSampleLevel_c6aca6() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm
index d6a867e..8b612b6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_c6aca6 "textureSampleLevel_c6aca6"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v2float = OpTypePointer Function %v2float
          %27 = OpConstantNull %v2float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
 %_ptr_Function_v4float = OpTypePointer Function %v4float
        %void = OpTypeVoid
          %40 = OpTypeFunction %void
@@ -88,8 +88,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v2float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl
index c949088..8971892 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/c6aca6.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -9,8 +11,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_c6aca6();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl
index 7586207..b712d45 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_cdfe0f();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
index d2a26be..351a3c5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_cdfe0f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
index d2a26be..351a3c5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_cdfe0f()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
index 766566c..f509c74 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_cdfe0f "textureSampleLevel_cdfe0f"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -73,7 +73,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %uint_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
index 9a15ee4..d8446657 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/cdfe0f.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_cdfe0f();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl
index d849d2e..1720eadd5 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_3d<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_dcbecb();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
index b44516b..7ba4867 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_dcbecb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
index b44516b..7ba4867 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture3D<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_dcbecb()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl
index 07abfa9..cc81f38 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_dcbecb() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler3D arg_0_arg_1;
 
 vec4 textureSampleLevel_dcbecb() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm
index 0778aee..f72e713 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_dcbecb "textureSampleLevel_dcbecb"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 3D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 3D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -69,7 +69,7 @@
 %_ptr_Function_v3float = OpTypePointer Function %v3float
          %27 = OpConstantNull %v3float
 %_ptr_Function_float = OpTypePointer Function %float
-         %33 = OpTypeSampledImage %12
+         %33 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %v3int = OpTypeVector %int 3
       %int_1 = OpConstant %int 1
@@ -92,8 +92,8 @@
         %res = OpVariable %_ptr_Function_v4float Function %5
                OpStore %arg_2 %24
                OpStore %arg_3 %float_1
-         %31 = OpLoad %15 %arg_1
-         %32 = OpLoad %12 %arg_0
+         %31 = OpLoad %18 %arg_1
+         %32 = OpLoad %15 %arg_0
          %34 = OpSampledImage %33 %32 %31
          %35 = OpLoad %v3float %arg_2
          %36 = OpLoad %float %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl
index a31c06c..25e2354 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/dcbecb.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_3d<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_dcbecb();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl
index 3bd23bf..147b5b8 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_e6ce9e();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
index d958f6a..e0501df 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_e6ce9e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
index d958f6a..e0501df 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_e6ce9e()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
index bfb9a54..aceb359 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_e6ce9e "textureSampleLevel_e6ce9e"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -77,7 +77,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %37 = OpConstantNull %int
-         %42 = OpTypeSampledImage %12
+         %42 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
       %v2int = OpTypeVector %int 2
          %54 = OpConstantComposite %v2int %int_1 %int_1
@@ -100,8 +100,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %int_1
-         %40 = OpLoad %15 %arg_1
-         %41 = OpLoad %12 %arg_0
+         %40 = OpLoad %18 %arg_1
+         %41 = OpLoad %15 %arg_0
          %43 = OpSampledImage %42 %41 %40
          %45 = OpLoad %v2float %arg_2
          %46 = OpCompositeExtract %float %45 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
index 313e005..f3c638e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/e6ce9e.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_e6ce9e();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl
index 9aa8f42..b0cda0f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_2d;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_f3b2c8();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
index 6493cc4..c0c40af 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_f3b2c8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
index 6493cc4..c0c40af 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2D arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -8,8 +9,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_f3b2c8()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl
index e9e62fa..b041a2c 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_f3b2c8() {
@@ -11,10 +15,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -30,6 +30,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 uniform highp sampler2DShadow arg_0_arg_1;
 
 float textureSampleLevel_f3b2c8() {
@@ -39,10 +43,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
index 131254e..0d6e9d2 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_f3b2c8 "textureSampleLevel_f3b2c8"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -34,14 +34,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -53,15 +53,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float 2D 0 0 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 0 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -72,7 +72,7 @@
      %uint_1 = OpConstant %uint 1
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
-         %37 = OpTypeSampledImage %12
+         %37 = OpTypeSampledImage %15
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
       %int_1 = OpConstant %int 1
@@ -94,8 +94,8 @@
         %res = OpVariable %_ptr_Function_float Function %8
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
-         %35 = OpLoad %15 %arg_1
-         %36 = OpLoad %12 %arg_0
+         %35 = OpLoad %18 %arg_1
+         %36 = OpLoad %15 %arg_0
          %38 = OpSampledImage %37 %36 %35
          %39 = OpLoad %v2float %arg_2
          %41 = OpLoad %uint %arg_3
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
index 3fae988..6274d69 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/f3b2c8.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_2d;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_f3b2c8();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl
index a99ae0f..7910902 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0: texture_2d_array<f32>;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -46,8 +49,6 @@
   var res: vec4<f32> = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4, arg_5);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_faa6d7();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
index d8adc9e..ae8f6a6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_faa6d7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
index d8adc9e..ae8f6a6 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 Texture2DArray<float4> arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(textureSampleLevel_faa6d7()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl
index 9427e97..38b4266 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.glsl
@@ -2,6 +2,10 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_faa6d7() {
@@ -12,10 +16,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -31,6 +31,10 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 uniform highp sampler2DArray arg_0_arg_1;
 
 vec4 textureSampleLevel_faa6d7() {
@@ -41,10 +45,6 @@
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm
index b87175e..3790e3d 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.spvasm
@@ -13,11 +13,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_faa6d7 "textureSampleLevel_faa6d7"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -35,14 +35,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -54,15 +54,15 @@
 %_ptr_Output_float = OpTypePointer Output %float
           %9 = OpConstantNull %float
 %vertex_point_size = OpVariable %_ptr_Output_float Output %9
-         %12 = OpTypeImage %float 2D 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %v4float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float 2D 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %v4float
     %v2float = OpTypeVector %float 2
     %float_1 = OpConstant %float 1
@@ -74,7 +74,7 @@
 %_ptr_Function_uint = OpTypePointer Function %uint
          %32 = OpConstantNull %uint
 %_ptr_Function_float = OpTypePointer Function %float
-         %38 = OpTypeSampledImage %12
+         %38 = OpTypeSampledImage %15
     %v3float = OpTypeVector %float 3
         %int = OpTypeInt 32 1
       %v2int = OpTypeVector %int 2
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %float_1
-         %36 = OpLoad %15 %arg_1
-         %37 = OpLoad %12 %arg_0
+         %36 = OpLoad %18 %arg_1
+         %37 = OpLoad %15 %arg_0
          %39 = OpSampledImage %38 %37 %36
          %41 = OpLoad %v2float %arg_2
          %42 = OpCompositeExtract %float %41 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl
index 4b9d3b0..321acc1 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/faa6d7.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 @group(1) @binding(0) var arg_0 : texture_2d_array<f32>;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -11,8 +13,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_faa6d7();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
index 082eec5..bc2cfcf 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0: texture_depth_cube_array;
 @group(1) @binding(1) var arg_1: sampler;
 
@@ -45,8 +48,6 @@
   var res: f32 = textureSampleLevel(arg_0, arg_1, arg_2, arg_3, arg_4);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ff11bc();
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
index c2bcf47..cbf2d47 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.dxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ff11bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
index c2bcf47..cbf2d47 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.fxc.hlsl
@@ -1,3 +1,4 @@
+RWByteAddressBuffer prevent_dce : register(u0);
 TextureCubeArray arg_0 : register(t0, space1);
 SamplerState arg_1 : register(s1, space1);
 
@@ -9,8 +10,6 @@
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(textureSampleLevel_ff11bc()));
   return;
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm
index 384292c..5619b7f 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.spvasm
@@ -14,11 +14,11 @@
                OpName %pos_1 "pos_1"
                OpName %prevent_dce_1 "prevent_dce_1"
                OpName %vertex_point_size "vertex_point_size"
-               OpName %arg_0 "arg_0"
-               OpName %arg_1 "arg_1"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
+               OpName %arg_1 "arg_1"
                OpName %textureSampleLevel_ff11bc "textureSampleLevel_ff11bc"
                OpName %arg_2 "arg_2"
                OpName %arg_3 "arg_3"
@@ -36,14 +36,14 @@
                OpDecorate %prevent_dce_1 Location 0
                OpDecorate %prevent_dce_1 Flat
                OpDecorate %vertex_point_size BuiltIn PointSize
-               OpDecorate %arg_0 DescriptorSet 1
-               OpDecorate %arg_0 Binding 0
-               OpDecorate %arg_1 DescriptorSet 1
-               OpDecorate %arg_1 Binding 1
                OpDecorate %prevent_dce_block Block
                OpMemberDecorate %prevent_dce_block 0 Offset 0
                OpDecorate %prevent_dce DescriptorSet 0
                OpDecorate %prevent_dce Binding 0
+               OpDecorate %arg_0 DescriptorSet 1
+               OpDecorate %arg_0 Binding 0
+               OpDecorate %arg_1 DescriptorSet 1
+               OpDecorate %arg_1 Binding 1
                OpMemberDecorate %VertexOutput 0 Offset 0
                OpMemberDecorate %VertexOutput 1 Offset 16
       %float = OpTypeFloat 32
@@ -55,15 +55,15 @@
           %8 = OpConstantNull %float
 %prevent_dce_1 = OpVariable %_ptr_Output_float Output %8
 %vertex_point_size = OpVariable %_ptr_Output_float Output %8
-         %12 = OpTypeImage %float Cube 0 1 0 1 Unknown
-%_ptr_UniformConstant_12 = OpTypePointer UniformConstant %12
-      %arg_0 = OpVariable %_ptr_UniformConstant_12 UniformConstant
-         %15 = OpTypeSampler
-%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
-      %arg_1 = OpVariable %_ptr_UniformConstant_15 UniformConstant
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+         %15 = OpTypeImage %float Cube 0 1 0 1 Unknown
+%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
+      %arg_0 = OpVariable %_ptr_UniformConstant_15 UniformConstant
+         %18 = OpTypeSampler
+%_ptr_UniformConstant_18 = OpTypePointer UniformConstant %18
+      %arg_1 = OpVariable %_ptr_UniformConstant_18 UniformConstant
          %19 = OpTypeFunction %float
     %v3float = OpTypeVector %float 3
     %float_1 = OpConstant %float 1
@@ -78,7 +78,7 @@
       %int_1 = OpConstant %int 1
 %_ptr_Function_int = OpTypePointer Function %int
          %37 = OpConstantNull %int
-         %42 = OpTypeSampledImage %12
+         %42 = OpTypeSampledImage %15
 %_ptr_Function_float = OpTypePointer Function %float
        %void = OpTypeVoid
          %56 = OpTypeFunction %void
@@ -98,8 +98,8 @@
                OpStore %arg_2 %24
                OpStore %arg_3 %uint_1
                OpStore %arg_4 %int_1
-         %40 = OpLoad %15 %arg_1
-         %41 = OpLoad %12 %arg_0
+         %40 = OpLoad %18 %arg_1
+         %41 = OpLoad %15 %arg_0
          %43 = OpSampledImage %42 %41 %40
          %44 = OpLoad %v3float %arg_2
          %45 = OpCompositeExtract %float %44 0
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl
index cf80f14..02f6f4e 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/ff11bc.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 @group(1) @binding(0) var arg_0 : texture_depth_cube_array;
 
 @group(1) @binding(1) var arg_1 : sampler;
@@ -10,8 +12,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = textureSampleLevel_ff11bc();
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl
index f4a44ca..d2e7f7e 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 3, f16>) -> mat<3, 3, f16>
 fn transpose_06794e() -> i32{
   var arg_0 = mat3x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat3x3<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_06794e();
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.dxc.hlsl
index 52f59ec..239bb08 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_06794e() {
   matrix<float16_t, 3, 3> arg_0 = matrix<float16_t, 3, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   matrix<float16_t, 3, 3> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_06794e()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.glsl
index 10e727f..ed22528 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_06794e() {
   f16mat3 arg_0 = f16mat3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   f16mat3 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_06794e() {
   f16mat3 arg_0 = f16mat3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   f16mat3 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.wgsl
index 68826c1..01682cf 100644
--- a/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/06794e.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_06794e() -> i32 {
   var arg_0 = mat3x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat3x3<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_06794e();
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl
index cef5b3c..7bea431 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 3, f32>) -> mat<3, 4, f32>
 fn transpose_2585cd() -> i32{
   var arg_0 = mat4x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat3x4<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_2585cd();
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.dxc.hlsl
index 4f7704c..784c99b 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_2585cd() {
   float4x3 arg_0 = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   float3x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_2585cd()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.fxc.hlsl
index 4f7704c..784c99b 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_2585cd() {
   float4x3 arg_0 = float4x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   float3x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_2585cd()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.glsl
index f93b02b..7d1700b 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_2585cd() {
   mat4x3 arg_0 = mat4x3(vec3(1.0f), vec3(1.0f), vec3(1.0f), vec3(1.0f));
   mat3x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_2585cd() {
   mat4x3 arg_0 = mat4x3(vec3(1.0f), vec3(1.0f), vec3(1.0f), vec3(1.0f));
   mat3x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.wgsl
index 1550515..0b3a8f4 100644
--- a/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/2585cd.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_2585cd() -> i32 {
   var arg_0 = mat4x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat3x4<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_2585cd();
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl
index 63bb327..4212c70 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 2, f32>) -> mat<2, 2, f32>
 fn transpose_31d679() -> i32{
   var arg_0 = mat2x2<f32>(1.f, 1.f, 1.f, 1.f);
   var res: mat2x2<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31d679();
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.dxc.hlsl
index 5335659..fb89215 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31d679() {
   float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
   float2x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31d679()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.fxc.hlsl
index 5335659..fb89215 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31d679() {
   float2x2 arg_0 = float2x2((1.0f).xx, (1.0f).xx);
   float2x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31d679()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.glsl
index d4b85b0..f4a82db 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31d679() {
   mat2 arg_0 = mat2(vec2(1.0f), vec2(1.0f));
   mat2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31d679() {
   mat2 arg_0 = mat2(vec2(1.0f), vec2(1.0f));
   mat2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.wgsl
index 37e1334..88ef3b3 100644
--- a/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/31d679.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_31d679() -> i32 {
   var arg_0 = mat2x2<f32>(1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat2x2<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31d679();
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl
index ead9cb5..1182fe6 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 2, f32>) -> mat<2, 4, f32>
 fn transpose_31e37e() -> i32{
   var arg_0 = mat4x2<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat2x4<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31e37e();
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.dxc.hlsl
index 1334ce3..31b3496 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31e37e() {
   float4x2 arg_0 = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
   float2x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31e37e()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.fxc.hlsl
index 1334ce3..31b3496 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_31e37e() {
   float4x2 arg_0 = float4x2((1.0f).xx, (1.0f).xx, (1.0f).xx, (1.0f).xx);
   float2x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_31e37e()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.glsl
index c50514b..dcd7ff8 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31e37e() {
   mat4x2 arg_0 = mat4x2(vec2(1.0f), vec2(1.0f), vec2(1.0f), vec2(1.0f));
   mat2x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_31e37e() {
   mat4x2 arg_0 = mat4x2(vec2(1.0f), vec2(1.0f), vec2(1.0f), vec2(1.0f));
   mat2x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.wgsl
index f92e6c2..18cf73a 100644
--- a/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/31e37e.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_31e37e() -> i32 {
   var arg_0 = mat4x2<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat2x4<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_31e37e();
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl
index bf79e29..8b66567 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 4, f32>) -> mat<4, 2, f32>
 fn transpose_4ce359() -> i32{
   var arg_0 = mat2x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat4x2<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4ce359();
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.dxc.hlsl
index a8f48e8..58fd180 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4ce359() {
   float2x4 arg_0 = float2x4((1.0f).xxxx, (1.0f).xxxx);
   float4x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4ce359()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.fxc.hlsl
index a8f48e8..58fd180 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4ce359() {
   float2x4 arg_0 = float2x4((1.0f).xxxx, (1.0f).xxxx);
   float4x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4ce359()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.glsl
index 3cdbd29..dd8f925 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4ce359() {
   mat2x4 arg_0 = mat2x4(vec4(1.0f), vec4(1.0f));
   mat4x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4ce359() {
   mat2x4 arg_0 = mat2x4(vec4(1.0f), vec4(1.0f));
   mat4x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.wgsl
index c72ec50..b648404 100644
--- a/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/4ce359.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_4ce359() -> i32 {
   var arg_0 = mat2x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat4x2<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4ce359();
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl
index 1086a05..90d78dc 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 3, f32>) -> mat<3, 2, f32>
 fn transpose_4dc9a1() -> i32{
   var arg_0 = mat2x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat3x2<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4dc9a1();
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.dxc.hlsl
index eeea89d..2c937f2 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4dc9a1() {
   float2x3 arg_0 = float2x3((1.0f).xxx, (1.0f).xxx);
   float3x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.fxc.hlsl
index eeea89d..2c937f2 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_4dc9a1() {
   float2x3 arg_0 = float2x3((1.0f).xxx, (1.0f).xxx);
   float3x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_4dc9a1()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.glsl
index 226d7cd..2158984 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4dc9a1() {
   mat2x3 arg_0 = mat2x3(vec3(1.0f), vec3(1.0f));
   mat3x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_4dc9a1() {
   mat2x3 arg_0 = mat2x3(vec3(1.0f), vec3(1.0f));
   mat3x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.wgsl
index 5cac3d5..7cf26e7 100644
--- a/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/4dc9a1.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_4dc9a1() -> i32 {
   var arg_0 = mat2x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat3x2<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_4dc9a1();
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl
index c9cfa6b..e64e3d5 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 2, f16>) -> mat<2, 4, f16>
 fn transpose_5edd96() -> i32{
   var arg_0 = mat4x2<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat2x4<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5edd96();
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.dxc.hlsl
index 730f573..df73a8c 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_5edd96() {
   matrix<float16_t, 4, 2> arg_0 = matrix<float16_t, 4, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   matrix<float16_t, 2, 4> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_5edd96()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.glsl
index 69e4089..6e0db11 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5edd96() {
   f16mat4x2 arg_0 = f16mat4x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   f16mat2x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5edd96() {
   f16mat4x2 arg_0 = f16mat4x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   f16mat2x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.wgsl
index 97d5f5b..b698c28 100644
--- a/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/5edd96.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_5edd96() -> i32 {
   var arg_0 = mat4x2<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat2x4<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5edd96();
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl
index 3e4bfd4..ee0a596 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 3, f16>) -> mat<3, 4, f16>
 fn transpose_5f36bf() -> i32{
   var arg_0 = mat4x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat3x4<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5f36bf();
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.dxc.hlsl
index 54320a4..7183d9e 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_5f36bf() {
   matrix<float16_t, 4, 3> arg_0 = matrix<float16_t, 4, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   matrix<float16_t, 3, 4> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_5f36bf()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.glsl
index 9b098ef..21073b7 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5f36bf() {
   f16mat4x3 arg_0 = f16mat4x3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   f16mat3x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_5f36bf() {
   f16mat4x3 arg_0 = f16mat4x3(f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf), f16vec3(1.0hf));
   f16mat3x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.wgsl
index 1658d9d..f005174 100644
--- a/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/5f36bf.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_5f36bf() -> i32 {
   var arg_0 = mat4x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat3x4<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_5f36bf();
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl
index cf627be..445246d 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 2, f16>) -> mat<2, 2, f16>
 fn transpose_7be8b2() -> i32{
   var arg_0 = mat2x2<f16>(1.h, 1.h, 1.h, 1.h);
   var res: mat2x2<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_7be8b2();
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.dxc.hlsl
index 097e697..936553f 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_7be8b2() {
   matrix<float16_t, 2, 2> arg_0 = matrix<float16_t, 2, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   matrix<float16_t, 2, 2> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_7be8b2()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.glsl
index b10a655..57da1ec 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_7be8b2() {
   f16mat2 arg_0 = f16mat2(f16vec2(1.0hf), f16vec2(1.0hf));
   f16mat2 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_7be8b2() {
   f16mat2 arg_0 = f16mat2(f16vec2(1.0hf), f16vec2(1.0hf));
   f16mat2 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.wgsl
index 4f15d96..1570e2a 100644
--- a/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/7be8b2.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_7be8b2() -> i32 {
   var arg_0 = mat2x2<f16>(1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat2x2<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_7be8b2();
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl b/test/tint/builtins/gen/var/transpose/844869.wgsl
index 9651241..03fe55f 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 4, f16>) -> mat<4, 4, f16>
 fn transpose_844869() -> i32{
   var arg_0 = mat4x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat4x4<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_844869();
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.dxc.hlsl
index f43eab3..9d56dad 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_844869() {
   matrix<float16_t, 4, 4> arg_0 = matrix<float16_t, 4, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   matrix<float16_t, 4, 4> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_844869()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.glsl
index d9750c7..60c6652 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_844869() {
   f16mat4 arg_0 = f16mat4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   f16mat4 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_844869() {
   f16mat4 arg_0 = f16mat4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   f16mat4 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.wgsl
index 3be1551..5aa16f8 100644
--- a/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/844869.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_844869() -> i32 {
   var arg_0 = mat4x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat4x4<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_844869();
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl b/test/tint/builtins/gen/var/transpose/854336.wgsl
index 97a0cca..3ae0c01 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 3, f32>) -> mat<3, 3, f32>
 fn transpose_854336() -> i32{
   var arg_0 = mat3x3<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat3x3<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_854336();
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.dxc.hlsl
index f1cf070..86590fd 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_854336() {
   float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   float3x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_854336()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.fxc.hlsl
index f1cf070..86590fd 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_854336() {
   float3x3 arg_0 = float3x3((1.0f).xxx, (1.0f).xxx, (1.0f).xxx);
   float3x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_854336()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.glsl
index d00f0b6..be74ee7 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_854336() {
   mat3 arg_0 = mat3(vec3(1.0f), vec3(1.0f), vec3(1.0f));
   mat3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_854336() {
   mat3 arg_0 = mat3(vec3(1.0f), vec3(1.0f), vec3(1.0f));
   mat3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.wgsl
index 06eefed..c1fc44e 100644
--- a/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/854336.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_854336() -> i32 {
   var arg_0 = mat3x3<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat3x3<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_854336();
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl
index 950df0c..581e7d0 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 4, f16>) -> mat<4, 3, f16>
 fn transpose_8c06ce() -> i32{
   var arg_0 = mat3x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat4x3<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_8c06ce();
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.dxc.hlsl
index a9f45cb..d23484f 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_8c06ce() {
   matrix<float16_t, 3, 4> arg_0 = matrix<float16_t, 3, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   matrix<float16_t, 4, 3> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_8c06ce()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.glsl
index 5596dcd..262e417 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_8c06ce() {
   f16mat3x4 arg_0 = f16mat3x4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   f16mat4x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_8c06ce() {
   f16mat3x4 arg_0 = f16mat3x4(f16vec4(1.0hf), f16vec4(1.0hf), f16vec4(1.0hf));
   f16mat4x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.wgsl
index 2c96dac..c5a10ff 100644
--- a/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/8c06ce.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_8c06ce() -> i32 {
   var arg_0 = mat3x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat4x3<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_8c06ce();
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl
index 3be17ae..ca0abbe 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 2, f16>) -> mat<2, 3, f16>
 fn transpose_b9ad1f() -> i32{
   var arg_0 = mat3x2<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat2x3<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_b9ad1f();
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.dxc.hlsl
index 697c87c..3b84cdd 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_b9ad1f() {
   matrix<float16_t, 3, 2> arg_0 = matrix<float16_t, 3, 2>((float16_t(1.0h)).xx, (float16_t(1.0h)).xx, (float16_t(1.0h)).xx);
   matrix<float16_t, 2, 3> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_b9ad1f()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.glsl
index ac8899c..4232093 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_b9ad1f() {
   f16mat3x2 arg_0 = f16mat3x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   f16mat2x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_b9ad1f() {
   f16mat3x2 arg_0 = f16mat3x2(f16vec2(1.0hf), f16vec2(1.0hf), f16vec2(1.0hf));
   f16mat2x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.wgsl
index a211da8..94fc167 100644
--- a/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/b9ad1f.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_b9ad1f() -> i32 {
   var arg_0 = mat3x2<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat2x3<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_b9ad1f();
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl
index 0fc5136..ffa2af2 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<4, 4, f32>) -> mat<4, 4, f32>
 fn transpose_c1b600() -> i32{
   var arg_0 = mat4x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat4x4<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_c1b600();
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.dxc.hlsl
index 557ecc9..e6164a4 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_c1b600() {
   float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   float4x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_c1b600()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.fxc.hlsl
index 557ecc9..e6164a4 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_c1b600() {
   float4x4 arg_0 = float4x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   float4x4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_c1b600()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.glsl
index 8767599..feb1e8b 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_c1b600() {
   mat4 arg_0 = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
   mat4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_c1b600() {
   mat4 arg_0 = mat4(vec4(1.0f), vec4(1.0f), vec4(1.0f), vec4(1.0f));
   mat4 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.wgsl
index 64f3a3e..ca62852 100644
--- a/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/c1b600.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_c1b600() -> i32 {
   var arg_0 = mat4x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat4x4<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_c1b600();
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl
index c9e0719..3548166 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 3, f16>) -> mat<3, 2, f16>
 fn transpose_d6faec() -> i32{
   var arg_0 = mat2x3<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat3x2<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d6faec();
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.dxc.hlsl
index 998f503..b84fa95 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_d6faec() {
   matrix<float16_t, 2, 3> arg_0 = matrix<float16_t, 2, 3>((float16_t(1.0h)).xxx, (float16_t(1.0h)).xxx);
   matrix<float16_t, 3, 2> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_d6faec()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.glsl
index d29f6f2..401b49f 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d6faec() {
   f16mat2x3 arg_0 = f16mat2x3(f16vec3(1.0hf), f16vec3(1.0hf));
   f16mat3x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d6faec() {
   f16mat2x3 arg_0 = f16mat2x3(f16vec3(1.0hf), f16vec3(1.0hf));
   f16mat3x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.wgsl
index bd895b1..3eb2529 100644
--- a/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/d6faec.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_d6faec() -> i32 {
   var arg_0 = mat2x3<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat3x2<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d6faec();
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl
index 7f3e20b..a8f0338 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 4, f32>) -> mat<4, 3, f32>
 fn transpose_d8f8ba() -> i32{
   var arg_0 = mat3x4<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat4x3<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d8f8ba();
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.dxc.hlsl
index da7e54e..cbe6c71 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_d8f8ba() {
   float3x4 arg_0 = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   float4x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.fxc.hlsl
index da7e54e..cbe6c71 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_d8f8ba() {
   float3x4 arg_0 = float3x4((1.0f).xxxx, (1.0f).xxxx, (1.0f).xxxx);
   float4x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_d8f8ba()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.glsl
index 067d94f..0730dbf 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d8f8ba() {
   mat3x4 arg_0 = mat3x4(vec4(1.0f), vec4(1.0f), vec4(1.0f));
   mat4x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_d8f8ba() {
   mat3x4 arg_0 = mat3x4(vec4(1.0f), vec4(1.0f), vec4(1.0f));
   mat4x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.wgsl
index cdc2268..a4104b4 100644
--- a/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/d8f8ba.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_d8f8ba() -> i32 {
   var arg_0 = mat3x4<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat4x3<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_d8f8ba();
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl
index 1e9e72b..886e448 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl
@@ -35,15 +35,16 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<3, 2, f32>) -> mat<2, 3, f32>
 fn transpose_ed4bdc() -> i32{
   var arg_0 = mat3x2<f32>(1.f, 1.f, 1.f, 1.f, 1.f, 1.f);
   var res: mat2x3<f32> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_ed4bdc();
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.dxc.hlsl
index e4fcd49..d3f8408 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_ed4bdc() {
   float3x2 arg_0 = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
   float2x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.fxc.hlsl
index e4fcd49..d3f8408 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.fxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_ed4bdc() {
   float3x2 arg_0 = float3x2((1.0f).xx, (1.0f).xx, (1.0f).xx);
   float2x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_ed4bdc()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.glsl
index 1e85823..25c439c 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_ed4bdc() {
   mat3x2 arg_0 = mat3x2(vec2(1.0f), vec2(1.0f), vec2(1.0f));
   mat2x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_ed4bdc() {
   mat3x2 arg_0 = mat3x2(vec2(1.0f), vec2(1.0f), vec2(1.0f));
   mat2x3 res = transpose(arg_0);
   return ((res[0][0] == 0.0f) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.wgsl
index d51535d..ed1c812 100644
--- a/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/ed4bdc.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_ed4bdc() -> i32 {
   var arg_0 = mat3x2<f32>(1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f);
   var res : mat2x3<f32> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_ed4bdc();
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl
index f3d2071..8bf9d8d 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl
@@ -40,15 +40,16 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+
+
 // fn transpose(mat<2, 4, f16>) -> mat<4, 2, f16>
 fn transpose_faeb05() -> i32{
   var arg_0 = mat2x4<f16>(1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h, 1.h);
   var res: mat4x2<f16> = transpose(arg_0);
   return select(0, 1, res[0][0] == 0);
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_faeb05();
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.dxc.hlsl
index 080d1cb..efea412 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int transpose_faeb05() {
   matrix<float16_t, 2, 4> arg_0 = matrix<float16_t, 2, 4>((float16_t(1.0h)).xxxx, (float16_t(1.0h)).xxxx);
   matrix<float16_t, 4, 2> res = transpose(arg_0);
   return ((res[0][0] == float16_t(0.0h)) ? 1 : 0);
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(transpose_faeb05()));
   return;
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.glsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.glsl
index 41755ea..13b96d8 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_faeb05() {
   f16mat2x4 arg_0 = f16mat2x4(f16vec4(1.0hf), f16vec4(1.0hf));
   f16mat4x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int transpose_faeb05() {
   f16mat2x4 arg_0 = f16mat2x4(f16vec4(1.0hf), f16vec4(1.0hf));
   f16mat4x2 res = transpose(arg_0);
   return ((res[0][0] == 0.0hf) ? 1 : 0);
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   int prevent_dce;
diff --git a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.wgsl b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.wgsl
index 3ead5ec..611c160 100644
--- a/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/transpose/faeb05.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 fn transpose_faeb05() -> i32 {
   var arg_0 = mat2x4<f16>(1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h, 1.0h);
   var res : mat4x2<f16> = transpose(arg_0);
   return select(0, 1, (res[0][0] == 0));
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = transpose_faeb05();
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl
index 888cc0e..cecbba0 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
+
 // fn trunc(vec<3, f16>) -> vec<3, f16>
 fn trunc_103ab8() -> vec3<f16>{
   var arg_0 = vec3<f16>(1.5h);
   var res: vec3<f16> = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_103ab8();
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.dxc.hlsl
index c27eb45..fbc9ff9 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 3> trunc_103ab8() {
   vector<float16_t, 3> arg_0 = (float16_t(1.5h)).xxx;
   vector<float16_t, 3> res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 3> >(0u, trunc_103ab8());
   return;
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.glsl
index 1453915..2a09b6c 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 trunc_103ab8() {
   f16vec3 arg_0 = f16vec3(1.5hf);
   f16vec3 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec3 inner;
+} prevent_dce;
+
 f16vec3 trunc_103ab8() {
   f16vec3 arg_0 = f16vec3(1.5hf);
   f16vec3 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec3 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.wgsl
index 47e748d..1b10d8e 100644
--- a/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/103ab8.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
+
 fn trunc_103ab8() -> vec3<f16> {
   var arg_0 = vec3<f16>(1.5h);
   var res : vec3<f16> = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_103ab8();
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl
index 594386b..90fb253 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
+
 // fn trunc(vec<3, f32>) -> vec<3, f32>
 fn trunc_562d05() -> vec3<f32>{
   var arg_0 = vec3<f32>(1.5f);
   var res: vec3<f32> = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_562d05();
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.dxc.hlsl
index 75183a4..77e9411 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 trunc_562d05() {
   float3 arg_0 = (1.5f).xxx;
   float3 res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(trunc_562d05()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.fxc.hlsl
index 75183a4..77e9411 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float3 trunc_562d05() {
   float3 arg_0 = (1.5f).xxx;
   float3 res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store3(0u, asuint(trunc_562d05()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.glsl
index af7ba57..d419780 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.glsl
@@ -2,17 +2,17 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 trunc_562d05() {
   vec3 arg_0 = vec3(1.5f);
   vec3 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
@@ -28,17 +28,17 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec3 inner;
+  uint pad;
+} prevent_dce;
+
 vec3 trunc_562d05() {
   vec3 arg_0 = vec3(1.5f);
   vec3 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec3 inner;
-  uint pad;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec3 prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.wgsl
index d34a805..bcfdc4b 100644
--- a/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/562d05.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
+
 fn trunc_562d05() -> vec3<f32> {
   var arg_0 = vec3<f32>(1.5f);
   var res : vec3<f32> = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec3<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_562d05();
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl
index f7654fd..a7c0f36 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
+
 // fn trunc(vec<2, f16>) -> vec<2, f16>
 fn trunc_a56109() -> vec2<f16>{
   var arg_0 = vec2<f16>(1.5h);
   var res: vec2<f16> = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_a56109();
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.dxc.hlsl
index 4c924d7..1775bfd 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 2> trunc_a56109() {
   vector<float16_t, 2> arg_0 = (float16_t(1.5h)).xx;
   vector<float16_t, 2> res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 2> >(0u, trunc_a56109());
   return;
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.glsl
index 04e95de..139bc34 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 trunc_a56109() {
   f16vec2 arg_0 = f16vec2(1.5hf);
   f16vec2 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec2 inner;
+} prevent_dce;
+
 f16vec2 trunc_a56109() {
   f16vec2 arg_0 = f16vec2(1.5hf);
   f16vec2 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.wgsl
index 4c8397f..5a73c77 100644
--- a/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/a56109.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
+
 fn trunc_a56109() -> vec2<f16> {
   var arg_0 = vec2<f16>(1.5h);
   var res : vec2<f16> = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_a56109();
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl
index 1cbb958..ffcdc82 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
+
 // fn trunc(f16) -> f16
 fn trunc_cc2b0d() -> f16{
   var arg_0 = 1.5h;
   var res: f16 = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_cc2b0d();
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.dxc.hlsl
index af3be06..2975313 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t trunc_cc2b0d() {
   float16_t arg_0 = float16_t(1.5h);
   float16_t res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<float16_t>(0u, trunc_cc2b0d());
   return;
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.glsl
index fe37795..0393fed 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t trunc_cc2b0d() {
   float16_t arg_0 = 1.5hf;
   float16_t res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t trunc_cc2b0d() {
   float16_t arg_0 = 1.5hf;
   float16_t res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float16_t prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.wgsl
index 0b3d387..f550604 100644
--- a/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/cc2b0d.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 fn trunc_cc2b0d() -> f16 {
   var arg_0 = 1.5h;
   var res : f16 = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_cc2b0d();
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl
index 6b9f8ef..b4cdd71 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl
@@ -40,14 +40,15 @@
 
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
+
 // fn trunc(vec<4, f16>) -> vec<4, f16>
 fn trunc_ce7c17() -> vec4<f16>{
   var arg_0 = vec4<f16>(1.5h);
   var res: vec4<f16> = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_ce7c17();
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.dxc.hlsl
index 18f411b..505121d 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 vector<float16_t, 4> trunc_ce7c17() {
   vector<float16_t, 4> arg_0 = (float16_t(1.5h)).xxxx;
   vector<float16_t, 4> res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store<vector<float16_t, 4> >(0u, trunc_ce7c17());
   return;
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.glsl
index ec30ff1..37788bd 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.glsl
@@ -3,16 +3,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 trunc_ce7c17() {
   f16vec4 arg_0 = f16vec4(1.5hf);
   f16vec4 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
@@ -29,16 +29,16 @@
 #version 310 es
 #extension GL_AMD_gpu_shader_half_float : require
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  f16vec4 inner;
+} prevent_dce;
+
 f16vec4 trunc_ce7c17() {
   f16vec4 arg_0 = f16vec4(1.5hf);
   f16vec4 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  f16vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   f16vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.wgsl
index ee86f0b..d351046 100644
--- a/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/ce7c17.wgsl.expected.wgsl
@@ -1,13 +1,13 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
+
 fn trunc_ce7c17() -> vec4<f16> {
   var arg_0 = vec4<f16>(1.5h);
   var res : vec4<f16> = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f16>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_ce7c17();
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl
index ea30c19..149704a 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn trunc(vec<4, f32>) -> vec<4, f32>
 fn trunc_e183aa() -> vec4<f32>{
   var arg_0 = vec4<f32>(1.5f);
   var res: vec4<f32> = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_e183aa();
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.dxc.hlsl
index de54e37..1aa5270 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 trunc_e183aa() {
   float4 arg_0 = (1.5f).xxxx;
   float4 res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(trunc_e183aa()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.fxc.hlsl
index de54e37..1aa5270 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 trunc_e183aa() {
   float4 arg_0 = (1.5f).xxxx;
   float4 res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(trunc_e183aa()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.glsl
index 58fab4c..ea87528 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 trunc_e183aa() {
   vec4 arg_0 = vec4(1.5f);
   vec4 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 trunc_e183aa() {
   vec4 arg_0 = vec4(1.5f);
   vec4 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.wgsl
index b819f51..6b59cce 100644
--- a/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/e183aa.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn trunc_e183aa() -> vec4<f32> {
   var arg_0 = vec4<f32>(1.5f);
   var res : vec4<f32> = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_e183aa();
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl
index bd0c0a8..913b40d 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+
 // fn trunc(f32) -> f32
 fn trunc_eb83df() -> f32{
   var arg_0 = 1.5f;
   var res: f32 = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_eb83df();
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.dxc.hlsl
index e12e8d9..feb15d8 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float trunc_eb83df() {
   float arg_0 = 1.5f;
   float res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(trunc_eb83df()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.fxc.hlsl
index e12e8d9..feb15d8 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float trunc_eb83df() {
   float arg_0 = 1.5f;
   float res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store(0u, asuint(trunc_eb83df()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.glsl
index d4859da..b8301b0 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float trunc_eb83df() {
   float arg_0 = 1.5f;
   float res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float trunc_eb83df() {
   float arg_0 = 1.5f;
   float res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   float prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.wgsl
index 844130a..8d177bb 100644
--- a/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/eb83df.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 fn trunc_eb83df() -> f32 {
   var arg_0 = 1.5f;
   var res : f32 = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_eb83df();
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl
index dc42c9a..edc59b5 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn trunc(vec<2, f32>) -> vec<2, f32>
 fn trunc_f370d3() -> vec2<f32>{
   var arg_0 = vec2<f32>(1.5f);
   var res: vec2<f32> = trunc(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_f370d3();
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.dxc.hlsl
index 2845e54..c85c139 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.dxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 trunc_f370d3() {
   float2 arg_0 = (1.5f).xx;
   float2 res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(trunc_f370d3()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.fxc.hlsl
index 2845e54..c85c139 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.fxc.hlsl
@@ -2,14 +2,14 @@
   return param_0 < 0 ? ceil(param_0) : floor(param_0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 trunc_f370d3() {
   float2 arg_0 = (1.5f).xx;
   float2 res = tint_trunc(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(trunc_f370d3()));
   return;
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.glsl
index 40a42ae..63210d3 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 trunc_f370d3() {
   vec2 arg_0 = vec2(1.5f);
   vec2 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 trunc_f370d3() {
   vec2 arg_0 = vec2(1.5f);
   vec2 res = trunc(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.wgsl
index 548d51a..eca5fcc 100644
--- a/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/trunc/f370d3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn trunc_f370d3() -> vec2<f32> {
   var arg_0 = vec2<f32>(1.5f);
   var res : vec2<f32> = trunc(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = trunc_f370d3();
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl
index e9247a0..ff46462 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn unpack2x16float(u32) -> vec2<f32>
 fn unpack2x16float_32a5cf() -> vec2<f32>{
   var arg_0 = 1u;
   var res: vec2<f32> = unpack2x16float(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16float_32a5cf();
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
index 8efa6fe..49fe178 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.dxc.hlsl
@@ -3,14 +3,14 @@
   return f16tof32(uint2(i & 0xffff, i >> 16));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16float_32a5cf() {
   uint arg_0 = 1u;
   float2 res = tint_unpack2x16float(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
index 8efa6fe..49fe178 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return f16tof32(uint2(i & 0xffff, i >> 16));
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16float_32a5cf() {
   uint arg_0 = 1u;
   float2 res = tint_unpack2x16float(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16float_32a5cf()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.glsl
index 0f9c1cd..ae447f8 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16float_32a5cf() {
   uint arg_0 = 1u;
   vec2 res = unpackHalf2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16float_32a5cf() {
   uint arg_0 = 1u;
   vec2 res = unpackHalf2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.wgsl
index 79922e1..d75e24f 100644
--- a/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack2x16float/32a5cf.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn unpack2x16float_32a5cf() -> vec2<f32> {
   var arg_0 = 1u;
   var res : vec2<f32> = unpack2x16float(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16float_32a5cf();
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl
index e769777..cf85139 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn unpack2x16snorm(u32) -> vec2<f32>
 fn unpack2x16snorm_b4aea6() -> vec2<f32>{
   var arg_0 = 1u;
   var res: vec2<f32> = unpack2x16snorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16snorm_b4aea6();
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
index 1394983..282ce90 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.dxc.hlsl
@@ -4,14 +4,14 @@
   return clamp(float2(i) / 32767.0, -1.0, 1.0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16snorm_b4aea6() {
   uint arg_0 = 1u;
   float2 res = tint_unpack2x16snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
index 1394983..282ce90 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return clamp(float2(i) / 32767.0, -1.0, 1.0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16snorm_b4aea6() {
   uint arg_0 = 1u;
   float2 res = tint_unpack2x16snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16snorm_b4aea6()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.glsl
index 606943d..da3b455 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16snorm_b4aea6() {
   uint arg_0 = 1u;
   vec2 res = unpackSnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16snorm_b4aea6() {
   uint arg_0 = 1u;
   vec2 res = unpackSnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
index a8e21aa..1bb8822 100644
--- a/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack2x16snorm/b4aea6.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn unpack2x16snorm_b4aea6() -> vec2<f32> {
   var arg_0 = 1u;
   var res : vec2<f32> = unpack2x16snorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16snorm_b4aea6();
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl
index e850e0b..1e5473a 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
+
 // fn unpack2x16unorm(u32) -> vec2<f32>
 fn unpack2x16unorm_7699c0() -> vec2<f32>{
   var arg_0 = 1u;
   var res: vec2<f32> = unpack2x16unorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16unorm_7699c0();
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
index 7d4d84c..6ee56ed 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.dxc.hlsl
@@ -4,14 +4,14 @@
   return float2(i) / 65535.0;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16unorm_7699c0() {
   uint arg_0 = 1u;
   float2 res = tint_unpack2x16unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
index 7d4d84c..6ee56ed 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return float2(i) / 65535.0;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float2 unpack2x16unorm_7699c0() {
   uint arg_0 = 1u;
   float2 res = tint_unpack2x16unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store2(0u, asuint(unpack2x16unorm_7699c0()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.glsl
index 8e45b7a..0e0778a 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16unorm_7699c0() {
   uint arg_0 = 1u;
   vec2 res = unpackUnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec2 inner;
+} prevent_dce;
+
 vec2 unpack2x16unorm_7699c0() {
   uint arg_0 = 1u;
   vec2 res = unpackUnorm2x16(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec2 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec2 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.wgsl
index da4eb63..8ed2607 100644
--- a/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack2x16unorm/7699c0.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
+
 fn unpack2x16unorm_7699c0() -> vec2<f32> {
   var arg_0 = 1u;
   var res : vec2<f32> = unpack2x16unorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec2<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack2x16unorm_7699c0();
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl
index 60cdd77..8893634 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn unpack4x8snorm(u32) -> vec4<f32>
 fn unpack4x8snorm_523fb3() -> vec4<f32>{
   var arg_0 = 1u;
   var res: vec4<f32> = unpack4x8snorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8snorm_523fb3();
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
index 0e88569..d58c0bb 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.dxc.hlsl
@@ -4,14 +4,14 @@
   return clamp(float4(i) / 127.0, -1.0, 1.0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8snorm_523fb3() {
   uint arg_0 = 1u;
   float4 res = tint_unpack4x8snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
index 0e88569..d58c0bb 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return clamp(float4(i) / 127.0, -1.0, 1.0);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8snorm_523fb3() {
   uint arg_0 = 1u;
   float4 res = tint_unpack4x8snorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8snorm_523fb3()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.glsl
index 1043064..f08af77 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8snorm_523fb3() {
   uint arg_0 = 1u;
   vec4 res = unpackSnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8snorm_523fb3() {
   uint arg_0 = 1u;
   vec4 res = unpackSnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.wgsl
index 51c0e79..cc63195 100644
--- a/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack4x8snorm/523fb3.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn unpack4x8snorm_523fb3() -> vec4<f32> {
   var arg_0 = 1u;
   var res : vec4<f32> = unpack4x8snorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8snorm_523fb3();
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl
index e0933c4..5b75ae5 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl
@@ -35,14 +35,15 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
+
 // fn unpack4x8unorm(u32) -> vec4<f32>
 fn unpack4x8unorm_750c74() -> vec4<f32>{
   var arg_0 = 1u;
   var res: vec4<f32> = unpack4x8unorm(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8unorm_750c74();
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
index 811a689..d1f9d6b 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.dxc.hlsl
@@ -4,14 +4,14 @@
   return float4(i) / 255.0;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8unorm_750c74() {
   uint arg_0 = 1u;
   float4 res = tint_unpack4x8unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
index 811a689..d1f9d6b 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return float4(i) / 255.0;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float4 unpack4x8unorm_750c74() {
   uint arg_0 = 1u;
   float4 res = tint_unpack4x8unorm(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4x8unorm_750c74()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.glsl
index 1d8ce6f..b71aff5 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.glsl
@@ -2,16 +2,16 @@
 precision highp float;
 precision highp int;
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8unorm_750c74() {
   uint arg_0 = 1u;
   vec4 res = unpackUnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
@@ -27,16 +27,16 @@
 }
 #version 310 es
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  vec4 inner;
+} prevent_dce;
+
 vec4 unpack4x8unorm_750c74() {
   uint arg_0 = 1u;
   vec4 res = unpackUnorm4x8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  vec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   vec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.wgsl
index f689b1a..b7abb3a 100644
--- a/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack4x8unorm/750c74.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
+
 fn unpack4x8unorm_750c74() -> vec4<f32> {
   var arg_0 = 1u;
   var res : vec4<f32> = unpack4x8unorm(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<f32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4x8unorm_750c74();
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl
index 2406f8d..5b2cb20 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl
@@ -36,14 +36,15 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
+
 // fn unpack4xI8(u32) -> vec4<i32>
 fn unpack4xI8_830900() -> vec4<i32>{
   var arg_0 = 1u;
   var res: vec4<i32> = unpack4xI8(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xI8_830900();
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.dxc.hlsl
index 9832aad..af9004a 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 unpack4xI8_830900() {
   uint arg_0 = 1u;
   int4 res = unpack_s8s32(int8_t4_packed(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.fxc.hlsl
index d8873d4..3a85710 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.fxc.hlsl
@@ -4,14 +4,14 @@
   return (a_vec4i >> (24u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int4 unpack4xI8_830900() {
   uint arg_0 = 1u;
   int4 res = tint_unpack_4xi8(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xI8_830900()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.glsl
index c979859..3b0ed46 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.glsl
@@ -8,16 +8,16 @@
   return (a_vec4i >> uvec4(24u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 unpack4xI8_830900() {
   uint arg_0 = 1u;
   ivec4 res = tint_unpack_4xi8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
@@ -39,16 +39,16 @@
   return (a_vec4i >> uvec4(24u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  ivec4 inner;
+} prevent_dce;
+
 ivec4 unpack4xI8_830900() {
   uint arg_0 = 1u;
   ivec4 res = tint_unpack_4xi8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  ivec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   ivec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.wgsl
index 2ad9adf..ad4790e 100644
--- a/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack4xI8/830900.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
+
 fn unpack4xI8_830900() -> vec4<i32> {
   var arg_0 = 1u;
   var res : vec4<i32> = unpack4xI8(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<i32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xI8_830900();
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl
index e069a41..5f13441 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl
@@ -36,14 +36,15 @@
 
 
 // [hlsl-dxc] flags: --hlsl_shader_model 66
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
+
 // fn unpack4xU8(u32) -> vec4<u32>
 fn unpack4xU8_a5ea55() -> vec4<u32>{
   var arg_0 = 1u;
   var res: vec4<u32> = unpack4xU8(arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xU8_a5ea55();
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl
index ffbaef1..f9d02e6 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.dxc.hlsl
@@ -1,11 +1,11 @@
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 unpack4xU8_a5ea55() {
   uint arg_0 = 1u;
   uint4 res = unpack_u8u32(uint8_t4_packed(arg_0));
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xU8_a5ea55()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl
index 35cbb17..1c6f700 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.fxc.hlsl
@@ -3,14 +3,14 @@
   return (a_vec4u & (255u).xxxx);
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint4 unpack4xU8_a5ea55() {
   uint arg_0 = 1u;
   uint4 res = tint_unpack_4xu8(arg_0);
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 void fragment_main() {
   prevent_dce.Store4(0u, asuint(unpack4xU8_a5ea55()));
   return;
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.glsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.glsl
index d8db2af..33645d4 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.glsl
@@ -7,16 +7,16 @@
   return (a_vec4u & uvec4(255u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 unpack4xU8_a5ea55() {
   uint arg_0 = 1u;
   uvec4 res = tint_unpack_4xu8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
@@ -37,16 +37,16 @@
   return (a_vec4u & uvec4(255u));
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uvec4 inner;
+} prevent_dce;
+
 uvec4 unpack4xU8_a5ea55() {
   uint arg_0 = 1u;
   uvec4 res = tint_unpack_4xu8(arg_0);
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uvec4 inner;
-} prevent_dce;
-
 struct VertexOutput {
   vec4 pos;
   uvec4 prevent_dce;
diff --git a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.wgsl b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.wgsl
index 7059c59..371577e 100644
--- a/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/unpack4xU8/a5ea55.wgsl.expected.wgsl
@@ -1,11 +1,11 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
+
 fn unpack4xU8_a5ea55() -> vec4<u32> {
   var arg_0 = 1u;
   var res : vec4<u32> = unpack4xU8(arg_0);
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : vec4<u32>;
-
 @fragment
 fn fragment_main() {
   prevent_dce = unpack4xU8_a5ea55();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl
index 5afb66c..e08b08a 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0: u32;
 
 // fn workgroupUniformLoad(ptr<workgroup, u32, read_write>) -> u32
@@ -41,8 +44,6 @@
   var res: u32 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_37307c();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
index ba33e2d..8df71fc 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint workgroupUniformLoad_37307c() {
   uint res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
index ba33e2d..8df71fc 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.fxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 uint workgroupUniformLoad_37307c() {
   uint res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl
index 1789bb2..acca685 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.glsl
@@ -15,15 +15,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  uint inner;
+} prevent_dce;
+
 uint workgroupUniformLoad_37307c() {
   uint res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  uint inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_37307c();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm
index cd6300b..5c2fb6d 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -28,11 +28,11 @@
        %uint = OpTypeInt 32 0
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
 %prevent_dce_block = OpTypeStruct %uint
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+      %arg_0 = OpVariable %_ptr_Workgroup_uint Workgroup
        %void = OpTypeVoid
           %9 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.wgsl
index a3ae5fa..4cf9f63 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/37307c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
+
 var<workgroup> arg_0 : u32;
 
 fn workgroupUniformLoad_37307c() -> u32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : u32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_37307c();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl
index 5303c73..3ff2afb 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 var<workgroup> arg_0: f32;
 
 // fn workgroupUniformLoad(ptr<workgroup, f32, read_write>) -> f32
@@ -41,8 +44,6 @@
   var res: f32 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_7a857c();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
index c9283c8..f27f4fb 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float workgroupUniformLoad_7a857c() {
   float res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
index c9283c8..f27f4fb 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.fxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float workgroupUniformLoad_7a857c() {
   float res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl
index 24aba9a..e1a03f4 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.glsl
@@ -15,15 +15,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float inner;
+} prevent_dce;
+
 float workgroupUniformLoad_7a857c() {
   float res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_7a857c();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
index bb138ce..8d66d7c 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
       %float = OpTypeFloat 32
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-      %arg_0 = OpVariable %_ptr_Workgroup_float Workgroup
 %prevent_dce_block = OpTypeStruct %float
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+      %arg_0 = OpVariable %_ptr_Workgroup_float Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.wgsl
index 80634c1..cf87252 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/7a857c.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
+
 var<workgroup> arg_0 : f32;
 
 fn workgroupUniformLoad_7a857c() -> f32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_7a857c();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl
index 59b5a8a..3dde1ef 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl
@@ -34,6 +34,9 @@
 //                       Do not modify this file directly
 ////////////////////////////////////////////////////////////////////////////////
 
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0: i32;
 
 // fn workgroupUniformLoad(ptr<workgroup, i32, read_write>) -> i32
@@ -41,8 +44,6 @@
   var res: i32 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_9d33de();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
index 3642d9a..060939f 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int workgroupUniformLoad_9d33de() {
   int res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
index 3642d9a..060939f 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.fxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 int workgroupUniformLoad_9d33de() {
   int res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl
index d6367a0..3abdc9e 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.glsl
@@ -15,15 +15,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  int inner;
+} prevent_dce;
+
 int workgroupUniformLoad_9d33de() {
   int res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  int inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_9d33de();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
index e51ca59..774da88 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.spvasm
@@ -8,10 +8,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -29,11 +29,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
         %int = OpTypeInt 32 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
 %prevent_dce_block = OpTypeStruct %int
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+      %arg_0 = OpVariable %_ptr_Workgroup_int Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.wgsl
index a8054f7..f5e1d46 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/9d33de.wgsl.expected.wgsl
@@ -1,3 +1,5 @@
+@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
+
 var<workgroup> arg_0 : i32;
 
 fn workgroupUniformLoad_9d33de() -> i32 {
@@ -5,8 +7,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : i32;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_9d33de();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl
index 72aaf87..08feff3 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl
@@ -39,6 +39,9 @@
 
 
 enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 var<workgroup> arg_0: f16;
 
 // fn workgroupUniformLoad(ptr<workgroup, f16, read_write>) -> f16
@@ -46,8 +49,6 @@
   var res: f16 = workgroupUniformLoad(&arg_0);
   return res;
 }
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_e07d08();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
index 2b8a2d8..c008c6e 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.dxc.hlsl
@@ -14,13 +14,13 @@
   return result;
 }
 
+RWByteAddressBuffer prevent_dce : register(u0);
+
 float16_t workgroupUniformLoad_e07d08() {
   float16_t res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-RWByteAddressBuffer prevent_dce : register(u0);
-
 struct tint_symbol_1 {
   uint local_invocation_index : SV_GroupIndex;
 };
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl
index ab9a5b6..aee3e34 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.glsl
@@ -16,15 +16,15 @@
   barrier();
 }
 
+layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
+  float16_t inner;
+} prevent_dce;
+
 float16_t workgroupUniformLoad_e07d08() {
   float16_t res = tint_workgroupUniformLoad_arg_0();
   return res;
 }
 
-layout(binding = 0, std430) buffer prevent_dce_block_ssbo {
-  float16_t inner;
-} prevent_dce;
-
 void compute_main(uint local_invocation_index) {
   tint_zero_workgroup_memory(local_invocation_index);
   prevent_dce.inner = workgroupUniformLoad_e07d08();
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
index db2dec5..2f0c55a 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.spvasm
@@ -11,10 +11,10 @@
                OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
                OpExecutionMode %compute_main LocalSize 1 1 1
                OpName %local_invocation_index_1 "local_invocation_index_1"
-               OpName %arg_0 "arg_0"
                OpName %prevent_dce_block "prevent_dce_block"
                OpMemberName %prevent_dce_block 0 "inner"
                OpName %prevent_dce "prevent_dce"
+               OpName %arg_0 "arg_0"
                OpName %tint_zero_workgroup_memory "tint_zero_workgroup_memory"
                OpName %local_idx "local_idx"
                OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
@@ -32,11 +32,11 @@
 %_ptr_Input_uint = OpTypePointer Input %uint
 %local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
        %half = OpTypeFloat 16
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-      %arg_0 = OpVariable %_ptr_Workgroup_half Workgroup
 %prevent_dce_block = OpTypeStruct %half
 %_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
 %prevent_dce = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+      %arg_0 = OpVariable %_ptr_Workgroup_half Workgroup
        %void = OpTypeVoid
          %10 = OpTypeFunction %void %uint
      %uint_1 = OpConstant %uint 1
diff --git a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.wgsl b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.wgsl
index 8307318..5f9092d 100644
--- a/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/workgroupUniformLoad/e07d08.wgsl.expected.wgsl
@@ -1,5 +1,7 @@
 enable f16;
 
+@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
+
 var<workgroup> arg_0 : f16;
 
 fn workgroupUniformLoad_e07d08() -> f16 {
@@ -7,8 +9,6 @@
   return res;
 }
 
-@group(0) @binding(0) var<storage, read_write> prevent_dce : f16;
-
 @compute @workgroup_size(1)
 fn compute_main() {
   prevent_dce = workgroupUniformLoad_e07d08();